// ==UserScript==
// @name        NNG helper
// @version     1.2.18
// @description NNG helper
// @author      isvorcz
// @namespace   NNG
// @include     http://codereview/*
// @include     https://codereview/*
// @include     http://codereview.navngo.local/*
// @include     https://codereview.navngo.local/*
// @include     http://bugtracker.igomyway.com/*
// @include     https://bugtracker.igomyway.com/*
// @include     https://app.nng.com/timetracker/*
// @grant       GM_getValue
// @grant       GM_setValue
// @grant       GM_log
// @grant       GM_deleteValue
// @grant       GM_xmlhttpRequest
// @grant       GM_getResourceText
// @require     http://nnghelper.googlecode.com/svn/trunk/era/jquery-1.6.2.min.js
// @require     http://nnghelper.googlecode.com/svn/trunk/era/jquery-ui.min.js
// @require     http://nnghelper.googlecode.com/svn/trunk/era/jquery-floating.js
// @require     http://nnghelper.googlecode.com/svn/trunk/era/jquery.json-2.2.min.js
// @resource    jQuery http://nnghelper.googlecode.com/svn/trunk/era/jquery-1.6.2.min.js
// @resource    jQueryUI http://nnghelper.googlecode.com/svn/trunk/era/jquery-ui.min.js
// @resource    jQueryFloating http://nnghelper.googlecode.com/svn/trunk/era/jquery-floating.js
// ==/UserScript==

/*
 * TODO
 * ====
 * - napi műveletek
 * - change start/end time
 */

var VERSION_STR = 'v1.2.18'
var VERSION_DATE = '2013-02-13';
var VERSION_JSON = {base : "https://nnghelper.googlecode.com/svn/", changeLog: [], write:1};
var VERSION_PATTERN = /^v(\d+)\.(\d+)\.(\d+)(\.(\d+)|[a-z].*|)$/i;
var VERSION = {major:1, minor:0, build:0};
var MAIN_ICON = 'clock';
var TIME_PATTERN  = /^\s*(\d{1,2}):(\d{1,2})\s*$/;
var KEY_LAST_MANTIS = 'lastMantis';
var KEY_ACTIVE_MANTIS = 'activeMantis';
var KEY_OPTIONS = 'nngOptions';
var KEY_PROJECTS = 'nngProjects';
var KEY_VERSION = 'nngVersion';
var KEY_TRACKED = 'tracked';
var KEY_TTDATA = 'ttData';
var TAB_SETTINGS = 'settings';
var TAB_PROJECTS = 'projects';
var TAB_DAY = 'editDay';
var TAB_HIDDEN = 'hidden';
var TAB_ABOUT = 'about';
var TAB_CHANGELOG = 'changelog';
var TAB_TTDATA = 'ttd';

var TYPE_MANTIS = 'm';
var TYPE_PROJECT = 'tt';
var TYPE_CODEREVIEW = 'cr';
var TYPE_TASK = 'tr';

var ACTIVATE_PIC = 'activate';
var DEACTIVATE_PIC = 'deactivate';
var SETUP_PIC = 'wizard';
var DAY = 86400000;

var base;
var thisMantis = {id:0,type:TYPE_MANTIS};

var options = {};
var optionsDefault = {
    projects : [757, 759, 760, 761, 762, 758, 770, 763] ,
    workTime : {start : '9:00', end: '17:20'},
    uitheme: 'base'
}

var UITHEMES = ['base', 'black-tie', 'blitzer', 'cupertino', 'dark-hive',
    'dot-luv', 'eggplant', 'excite-bike', 'flick', 'hot-sneaks',
    'humanity', 'le-frog', 'mint-choc', 'overcast', 'pepper-grinder',
    'redmond', 'smoothness', 'south-street', 'start', 'sunny',
    'swanky-purse', 'trontastic', 'ui-darkness', 'ui-lightness', 'vader'];

var isChrome = false;
try  {
    isChrome = chrome != null && chrome != undefined && chrome.extension != null;
} catch (e) {
}

GM_log('isChrome:'+isChrome);

var log = 'isChrome:'+isChrome

var scriptJQ;

if (!isChrome) {
    window.addEventListener('load', function(){var checker=setInterval(function(){
            if(typeof (scriptJQ = jQuery.noConflict()) != "undefined") {
                    clearInterval(checker);
                    nngHelper();
            }
    },100);}, false);
}

var exportDates;

function parseVersion(s) {
    var m = VERSION_PATTERN.exec(s);
    var result = {major:1, minor:0, build:0};
    if (m) {
        var rev = m[4] && m[4].indexOf("\.", 0)==0 ? m[4].substr(1): m[4];
        result = {major:m[1]*1, minor:m[2]*1, build:m[3]*1, revision:rev};
    }
    GM_log('parseVersion:'+scriptJQ.toJSON(result)+'|'+s);
    return result;
}

function isNewerVersion(v1, v2) {
    var result = false;
    if (v2.major > v1.major) {
        result = true;
    } else if (v2.major < v1.major) {
        result = false;
    } else if (v2.minor > v1.minor) {
        result = true;
    } else if (v2.minor < v1.minor) {
        result = false;
    } else if (v2.build > v1.build) {
        result = true;
    } else if (v2.build < v1.build) {
        result = false;
    } else if (v1.revision == null || v1.revision == undefined) {
        result = false;
    } else if (v2.revision == null || v2.revision == undefined) {
        result = true;
    }
    return result;
}

function nngHelper() {
    if (isChrome) {
        siteJQ = scriptJQ = jQuery== undefined ? $ : jQuery.noConflict();
    }
    active = readActiveMantis();
    var HREF = location.href;
    var parts = HREF.split('/');
    if (HREF.indexOf("http://")!=0 && HREF.indexOf("https://")!=0) {
        GM_log('return:'+HREF);
        return;
    }
    VERSION = parseVersion(VERSION_STR);
    readTTData();

    if (!isChrome) {
        var head = document.getElementsByTagName('head')[0];

        var script = document.createElement('script');
        script.type = 'text/javascript';

        var jQuery = GM_getResourceText('jQuery');
        var jQueryUI = GM_getResourceText('jQueryUI');
        var jQueryFloating = GM_getResourceText('jQueryFloating');

        script.innerHTML =
            jQuery + jQueryUI + jQueryFloating
            + 'var siteJQ1 = jQuery; var siteJQ = jQuery.noConflict();'
            ;
        head.appendChild(script);
        siteJQ = unsafeWindow.siteJQ;
        unsafeWindow.scriptJQ = scriptJQ;
    }

    GM_log(log);

    readOptions();

    scriptJQ('head').append('<style id="nngHelperTheme">@import "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/'+options.uitheme+'/jquery-ui.css";</style>');
    scriptJQ('head').append('<style>'
    +'.ui-autocomplete a.ui-corner-all { font-size: 12px; }'
    +'.ui-autocomplete { max-height: 300px; overflow-y: auto;   overflow-x: hidden; padding-right: 20px; }'
    +'#nngChangeLog { font-size: 12px; }'
    +'#nngMantisToolbar { text-align:left; }'
    +'</style>');

    if (parts[2]=='bugtracker.igomyway.com') {
            initBugtracker(parts);
    } else if (parts[2]=='app.nng.com'){
            initTimetracker(parts);
    } else if (parts[2]=='codereview'){
            initCodeReview(parts);
    } else if (parts[2]=='codereview.navngo.local'){
            initCodeReview(parts);
    }
}

var site;
var nopic = "data:;base64,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";

var pics = {
    buuf : {
        "activate" : "data:;base64,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",
        "deactivate" : "data:;base64,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",
        "setup" : "data:;base64,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",
        "export" : "data:;base64,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",
        "service" : "data:;base64,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",
        "save" : "data:;base64,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",
        "wizard" : "data:;base64,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",
        "day" : "data:;base64,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",
        "track" : "data:;base64,R0lGODlhIAAgAMYAAAAAAAkJCQoKCgsLCw0NDRERERUVFRcXFxgYGBkZGRoaGh4eHh8fHyAgIC8vLzAwMDMzMzQ0NP8AAEFBQUVFRUdHR0hISP8ZGUpKSkxMTE1NTU9PT1BQUFJSUlNTU/8lJVRUVFVVVVZWVldXV1hYWFxcXP8yMl9fX2FhYWlpaW5ubnR0dH19fX9/f4WFhf9mZomJiYyMjI+Pj5iYmJmZmZubm5+fn/+MjKqqqqurq/+YmK6urv+amrGxsby8vMDAwMHBwf+zs8vLy83Nzc7Ozs/Pz/fFxdPT09TU1NXV1f/MzNfX19zc3OHh4eLi4vbd3eTk5Ojo6Onp6evr6+zs7Pbq6u3t7e7u7vDw8PHx8fPz8/T09P/z8/b29vf39/j4+Pn5+fv7+/39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFMgB/ACwAAAAAIAAgAAAH/oABAIOEhYaHiIMEAAkWGI+QkZKTkhUGgyBYXZucnZ6fnlQVgyNgZKeoqaqrql0YpKassqdjYj8+YqiusLOyY2REDythuq8Apb2rv1EcEEmpu8exydAsDT2/xbzUtGI5Cy7Tp9HI3L9FDiRWq+Sx2dmsUh4RSGTw48blYlld76pfLRjsuKdN2ikoIUbUSLLlnhgcDFx8kdXulJQSCAYw8DDjiJYmNFw4GDFlVsUxY7IIiYFBgYAFGiicQMEAiD2K+dzRyjJERoYDE6hgEbGjV8VU77TY2HBFC4kcRnP6IhPFQwoVGpxE3cbqF5MYMJagNCl11q+xyY5yS1t27VaDO27flouLkytddm3vtsqrt+Dcvn7FASYTLROoT17AKF7MWDEWC4MaUZrUYYTly5gte0gAQFCiz6AHFQgEACH5BAEyAH8ALBIAEgAMAAsAAAc5gH9/SjcXEhIvQVyCgx+HjxI8i0qOkI88VTqGlocvTyackEagoYejpaaapZ6UpZiNnJKMhJuJi3+BADs=",

        "add" : "data:;base64,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",
        "apply" : "data:;base64,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",
        "basket" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgkFNs5jyEwAAAZNSURBVFjD7Zfbr11VFcZ/Y4w511p773NpT3dLTzBAgFjlojEQY4BoxGhMUASNMWhIedKE8OILLz6bGP4DE00wvmIgkUgiJioSNJFQoiDlImil9LTn0PZc9z57rTmGD2sfhH/Ap46HlXWd3zfm/L4x5oIrcSXmsbyy/H/DOnLs8AfnArC6usq5c+dA9Hu33nbjSQhdXKw23SW8FCuCa0h0xU0CWRgvlm4yoytuw1FV9qdF6kH2SxvbRileBAI3wkJDS+CyP/PFhUEqb7xy5qnd3b2fjsdjNjY2egIHcc8Dd8QnP3UNm5uFtgQqEJ7p2gkegYiACF4cE7Aqoy4Eway0qEOYICEoCtmILhCE1Bi7l3bpui2e+PkfPsBNH8L/3OfvuYmfPfbHGB8di6rg4njrYIFqIuWEzwKphNLOQEBV8BByynQ+I2kmZaOE001bREHNmG23bG9vxVe/fZsAXwaeBUjHr15l7ew57vjKrQ+ffWcTE5HVG47OB3aIfp1SyrRdiwi4B+FQ2sDVsZTQcCxnVAVLhpoiEZSAZBm84+W//EPeeeMC9z901yNPPv78s0eOHCWtnT0HwJ133/jg00+cYnG8RB5UUApVNhoTxBQPQ6whSiAErkIJ8GkQAqpKxJytCtE5oUIKMAtkWLO0POSl505z/8nb7wV4//119GD5rztxjIsXtmJ5vIwhpDpjOdGKMvOgU+gCOgVPgimYClIrmpUQQEFMwAuWjapW6qSQhNJ2pGzMpl0srQwBvgtgAN966LOPbW2XT5x/dyIr42WKO/VgiBcQFdBEZQZANkNU5wYSILAEomBJEAkiBE0QbeBAKTDZ3mN3a0rX7Uvp4NO3H1959dS7v1CAE7ccu+/5Z1/j6uuPk6qKtm1RVSQJIUoEeASqRnHHSw+CKNkMlYpsGQD3npdH4AouQcrCZHOCJeP4tVfx1+deZ/W68RcPXPCZEzcfY2Ptxfj4bYek25uxe3mH1WtWODweIPSgxYOuDUT1A+96CKpQiuMemKfeuhEQB7MBs7Zlc/MyzXBEaoaEaVx7w4oAd6W777n54VMvvkfbFlk7s4FIP817+87OO1uoCZZ67weAAwQiStCDqQrRBUgQKpgKlQmdC6UUxIyFQwMuXthCVZnuTuXN0+f5/g/vekR+8OiX1r/xnVvGrUPXdT1rN/bdme31NaCdQK5gNu3ouo7iECGICibQlbkcLDEYKEujRF31z3EnV0opwmTirL83wVJie7vw8p/f2km/e+bMq+tbh7/QRQmzEDOjbgyfOt1+RynW+90DCphqnzExlyBEgCqQ+/PSFQgl3ElihDiIQICKgBEiIq+9dP51qQeDrx86sviT8VXjmyzNvUzv5f4D0FBCBSmwP21JmtAkONHPgkEpwayd0lQD3EHigGQBFJ8PGyWQEqydv/DGztbOowd6uuWbJ+/9e3OojlAXSFiBMgUTwSWIDkrrbF28yOLhw4QGWoFhhAQpjI2zF1kYLVKP8tw1AglK54SAZKd4hM9cfvX4k3cCLxz0glcu71zk+muulVQCq+cOlyBcYBbgEBghNaPlCtXoC4/2wnSE3FQsfqwGCXy/z00MajXcIdxIWeTtf/4H4AUAPX71cQCme7OnCfBEP4AAIogFNhCkBktBM8yg3i9VhqgEakEUBkuKpL4caw2aA9EAA81gGWgE77rfAxw9ehRdO7sGwEt/+ttvBguZnIMQ6TUTfSutRWiyUg+UamikHFQjISfQef1vvTBaqqiGwqCGURWMBjAYgtVALeQRLI+UV0+dfgZgff1/vYDpzvSpS+ubffrRq1tE8AiKHNwIhksJrYLUCKkRsvXK9w7SnBQ1+EDxWkCl30dEkCqJ7cmEjfcu/foAVz90PHf+3xv0uH3HY+6IkIAqiBwMRwZdkGVuv0rIFYQ6K8sVVUBjQlMHdQP1SBiMgoWhgCBrPcbpjxLw/uL0qbefJxrIQ6xqsGZA1TTkqqGqaqqmYWFpARUwNbJov0NCYQJ1U5ObGrSibhqaQcNgWNEManKuqAcNr53615vA0kf2hAAP/uhr/PLHT98HPAC0QFU11TQlla7zpKqaTQwTti/v7QM7wOxDiRxeXB4uuEd0JSiz0lpOXZm10ZXO5+90wG/N9IlSfHLlV+BKXAmA/wJMoP9C/MHF3AAAAABJRU5ErkJggg==",
        "cancel" : "data:;base64,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",
        "chardevice" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgkHMWIxP20AAAbdSURBVFjD7ZdNqF1XFcd/a62997n3vvdu0qSpbSr9sDGtkeK0TopoJQ4cCFLQkUgVnCmCSAUHFQQRHIozdeAgFQQHDioWqlAQFamR1GiMtqTv5eM1L+/lfdyPc/bey8G59yU4KDgqQg9s7jn33H3XWv/1X/+1Nrx3vcuXjNdWnxwOBz89fs+xkzGENTWbm+mk5LIPvouKUB0H3B1VQQQcKMUB6HIGhBgUEyV7BcBUMTEsWP9siogQLBy5sr4+Wb++9ZQcu+foS1vrl8+ur69TSqFtW7q2AwE1I5ihZpScqUAww0QptVDdMTVElfl8Ru46RBVEkerkWkhNYpASKaV+bwiYKgeTGe8//eS58MzHP/bR869fouvmTKczPHe4CF4r81lL17WUkgHHK4hAM0iMx2M0DKkl4zheC7UWoiqYEsyYz+fM5y0WAl4rXc7MpjPaXDh6dMyjjzz0bLhy5crw3IsvMpm1uFdCUNwFxxEBQSm5NyKqtG3XGwmBJhoqChoQKqKKmkFxEJAQiSrMuo5uPmc+nxNUKLVy5vQp5vP2Ytjb29t848atB69vbqIWEDFUQe8iSnFBegxQEQQH66E2S5TcARXc8er9L90pVSh1BhUolVI6OoTpZMpHzjzB2zdvvh7Wr17/+9n7Tzy4tb1LMAHvve/DF0QUE+k9ccepCAamaIpEEQpG72K/dd5lNBecjOcRxaGWjNVAygWJHZODCV2X/xJ29/cvRPwT4KCCoCABEYWgfeRBehMi1OoojqggDoIQRMGd6hURYRADM1OkUyR0WK5gAUSp3jIer/HWxlWA1wLOn+azWQ9vGOAiiAlVoNEl9IbIopSCgIKXgpgiQcFBOse9W6Dkd/BwA3W0OMUL1Sv3Hj/O+rVrnHzggcth0MQ/H+ztggY8KlF6owJUF9QSGgSWWcB7g2bgvTb0noFa7PNdK0kKnVa8OChIhWARRxivrPgb/7oqG1evvqnf/uY33rh5c4thih5EUBTUICasaZDYV4R7v0yNGCLRIimmwxVSxFJAG4NkmEVSSuigQYhgPXnd4X33HZO3b20jIkW/9cJ359s7Oxw9fkzcwS1gKaKmveK5o6KHhk3vEO4w+gVAgmBixLh0JpEsYYOIhgYNRlBhvLLG7u3bt2BRbTu7+7fuXR0hoojJYfn10quEEDCzO0YF1AQLikbDYsBSwKIhJrg7shAzSYpp/w5ryFRWhg37Bwf/BAgAt7ZvXVhbHT4tXijZ0GSH0akooj0VVXtZFu3/tP9O+z5RC7VWSq2IFrz06Sq19HxBEJuiFWazKW2XLxw6sHN77x9SytNFjBj0Tq6buIBX0BCJISB34AFRQFFLoBmvleCFHJxSMsmUnDO5y9TqBAus3HOE9Y3rjFdXX9ve3ulTMJlO/zg72ENCn3dVJca40CJFYuqbzIKIYIg1iDWgEbGKBAPrcx3VSBbQlIjDIYOVIcPRELXA/UeP+MbVa4xWR787RODEfSdevXFjk7ZTT+NVCRoW7JBenoGoAppQE1QFBeRQIReoROkVIDbk6mjXUWomE9BacYGjo4Fc2tzk4sVLFw5J+JMffO/ybN6yOmz60omKxoSESAqBqH2DUhHMlKZJNKMhzXBAGg6w1KApsSibHiV3RCKmAdVerEJMHFldoZS8C/C5z34G/fTZT/Kpz38hHxzsM15ZETXFYiKa0cSEhgYbDGiGA0YrA1bXVhiMRjTNgNQ0hBhITSBF65+b5lAFvXbk0nNj2V/WRiu8tb5xHuDcL35J+NWvfwPA7b39t0+tjU5s7B4QQ8RRiiuoI04/hHhFSsUoNGlASBGvjnullEouHbQtbSt0XUfXziiLsvXqTKZTqJmd3f3dJZfD8ubNK2+d//IXTz3z4PYeIQR0UWI5d5gaGiPRlIq7iEjOFaTi6pgo89o6KpQUxNMqwZQQGrx0VHdyl8ldy8F0iopcOpwJlzenHnv0yY2Na19DaGez2UQQYjRq9ezuGkKIovrs46ceO1lq3/tzLohA23VEC2xubTGZzn4oeFNK6YBaney1FK+OpRipdfbC819//vnvfL8cOnDqA49w+d9vLn0Z9q0FX7wfLsl65onTf/jqV557eDQcMRgO+hmyy8ynU7a2t/ntq7/npZdf+SCws+xnQAuUxVpMLndsBuBu4wDTu9KTgdnCgWMf/tDjDz/y8EOMx2Ni0/SDigq4MJkc+Np4LC+9/MpTwLlFEMsgu0VAdWlkaTO8w8ie/+tz9tcLf+NHP/4ZObf9qJYrbdcSTGm7TkqpiMhD7p7v2vfO54L/4QwxCmZfyqWcBJKp4oK4417rMsIWkZ/jfuHdPe2IvHfk+/+5/gNd3UXfySOV5gAAAABJRU5ErkJggg==",
        "clanbomber" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgkGBVqe+pkAAAfdSURBVFjDzZdNbFxXFcd/9703bz48jj1ju/HEThNHbe2kikOblqqhDbDho1C3CPGxAImKgMSygEBIZYdElwgQmy4QKh+rLqrukFAqFJwSNXEah0Vcp7Fjux57/D2eeV/33sNi5k0SJ4WUFWdz733v6f3/95z/OedexUdYpVJheXn59kc+8HkFz/aWektZP7uztr7W0Nq8n804k1Fir6cfDu5/gOrKKvdj6l4PC4UCzWYzXb506NChnx07evThwyMjlEollFIYY4iiiJWVFZaWlpifv8H8/MKrRwb3vXJ9edsAjIyMcOPGjfsnUKlU2N7eTsGf7u8rn5t44UVndHQUY4xorVFKqSiKCIIAay1xHGOMEc/zVHN3h3OT7zAzM/Nz4BcAg4ODVKvV/06gUqlQr++wu9sAePX06dM/nZiYwPM8AZQxhjAMERGSJCFJErTWxHHM4uIiQdAkTrS4jkMYNNW7Fy99WK/Xh5RS9JVKrG9u/mcCXV1dNBoN/Iz31pnvff/LY2Nj4roujuOodKfNZhNrLVprtNYYY1hYWCCXy7GysoJSChGh2WyKtVZdnprikSNHChempgLAAU4AQ8Dp46OHT01fm/uBAuju3ke9vgPw2o9++PKZwyNHJJPJKICenh6MMaytraXuJoqijgfCMOTq1avk8znCMEJE8P0MvqdkeXVLXfjn+Z1PHBuJR0cO9H/6yUfpLuZ47NghNnZCfvm7Nza97p4e6tvbAN/5xte/dubQ4RFxXVf5vk+5XGZ4eJilpSVWVlZwHAdrLZ7n0Wg06O/v5+zZs+TzeRYX5llfXwfHI+NnKXiiHhsdlJ/89sf7Th5/iOlrN+kvd/Ov95eYnllmOzDMzFc3vDY44+Pjv3/61DM4jqNyuRyFQoHBwUHK5TJTU1NYa1FK4bou1lo2N7do7NbJ5/M4jsPa2ho9pQEqvR5f+uwTPPrQMPv7etSf3/o7f3zzHPPVjd2Nrd3NRhCvZvzstVqt9qxO4s95LSWo1yeefx7HUQKoKIro6upibm6O8+fPd1wvIriuSxzH1Gor9PT0Yq0lm80SRQmHB4ucGB0iVyjyyq/+wgeLG/T27mPskYepbS7uLC5++OBeEXoATzz++Le6ikWx1iqtNdZaGo0GxhjSNYC1liAIEBEU4LYlnCQJBx98EN/3+cflBS7/6W985YXnGR6ps729jcLI0IHBA4uLi58B3r6dgANMPPHkJ9FaEwQBxhiSJOkILRVbEAQ0Gg3iOCYMQ8IoQlshl8thrWVsbIxG4rG+VeeZTz2NFaG7u9jShRj1wEA/mYz3zb0ecIrF4hcOHKgQhqFKgdNdh2HYSb8oijqkwjAkl8szM3MNYzTWGqy1lPv6efzkScrlMiLC9uYmrqsIY4tYw/DwwQmAoaGhWyEYGBg4lbo4DMMWK8fpxDyKok7qpXkehU0KhTz5fIHJyXc4cWIco7fI54sYx8GKsLBwk+uzH3B8/DhJkmCsoauQrwAsLS3dIpDL54ebzSaO43QA4jjGWtsBN9aiEIxuEdGmlRHFYpHRsVEuXrxILp+jkMuhjaW+s01/Xx/jJ8aJ4xilFIDk8l0KKAGdsuiJ0dlms0m76gF0xKd1go4jjLFoY7CiELGICNZafN/HGMNTTz0FNqbeiHAc8DJH0Im5HRxAWTEAvXcQaAZhUydJUWsNgIggIgDs7u4iQvsnijiOOhmRest1XVpNysPPaBItJHGCUup2cNo7A7B3pGG9Xn83DIPncFwcsSQ6wRqLtEFFLEmSdIgZ0xKctbZNVKGUYHWINgLI3cAtyhKEoQLqdxDY3Ny8Ut9tPJfNZjs7V8rp5LfWugOcChMFSgyqTUopizbgOKBEoe3dJJRCNZoBwMbeOvDa3NwccRxL6t60yaQ5n6ZmB9wmKNFoY0i0JdagFBgj9wRPG1StVnsToLK//w4CH8zduF5zHEelgClYFEUowFF0YqrEIALatEIqCNaCNnLvuLf0IrXVGkEQ/BpgeWWt884FCIIwLJVKXywUCgIoa1txV0phrSEIo5b6rSFODNoIxoIAIgr5yLinu/fV9PQVE4bRS3dVwvb4m2szM1rEqiiK2nVAEMB1wXUdjLEk2t6WFalXbmXEvcAdx5FqdZmtre3vpievOwjsH+gDoLa6+uLNmwu4risohcKCCQmCBGvvdm96ME2FupdES5xKRIy6Mj19AfhDNpvde9LGbSsT4P1qtfrY0NDQmO+7osSqWAtW5C7gtFqmPSMVr+u6d4B7nqcmJydtEicHWyev7k653xuCtDWfefvts9XGbkM5SiSbcdo/3FtPTAdURMhkMmQymU6taIG7amrqkjSbwSkgA7C1tXVXmNzb5rb94Rtz8zdPKidz8IH9FcRqMdaqvdXPdV08z8P3fRzH6QC7rqsSrdW5c+e26vX6t4FrwNZHHcvdPeu4PV5aX1/fnZ2dfTKbyzkD/WVQCmnpUt0SYKvJKKWU72ewVtTs7CxX3nvvr8aYl4EZoAokH+tmBPQDR4GHga8CJ/r6SkP9fQP0lsv4nouf8bACjWZArbbK+vpGfWdn5wLwOnAVWATWAf2xr2Zt2wcMA4faRIaAI8ABoLvtvS1gGbgM3AQWgOvAKhD+z3fDPSEqtVtoL5AHim3BJsAu0ACC9nyzPbfcpynu37z29wXoaKHZHvXHAf2/sn8DmCDm9Q0vNj8AAAAASUVORK5CYII=",
        "clock" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIFgw4D38VXcAAAALCSURBVFjD7ZfPK3RRGMc/59x7zYyYoiv5UdSszGbCFM2sFIV/wUqZm6ywZaXZUJLFWFmwlYU0MgqFoiRhKfvJz5S4aObed6HRG8Y7Pwy95VndxXnO93Oe733uuY9wuVy2aZr8RJSWliIAu6qqCp/Ph5TyW4STySSHh4dcXl6iAgSDQWZnZykqKvoWgIeHB3p6elhbW3sBUBQFl8v1bQApTeAF4KvDtm1s22ZnZ4dEIkFbW1tae2UhxIUQHB8fMzg4SCwWw7KstOtlIcTPz88ZGxtDURR6e3tR1fSF/lILhBCYpkkkEuHo6Ijp6WkaGho+zZFfeXrLslhZWWF+fp5QKERnZydCiMIDpEp/cnJCOBwmEAjQ39+fUVfJdBt+9PxZ6S8uLgiHw2iaxujoKOXl5RnlqukA7u7u0DQNp9P57qRv4+npiZmZGQ4ODpiamsLr9b6C5QQQj8cZGhpCSkl7ezuBQIC6ujqKi4vfrbUsi+XlZebm5jAMg+7u7oyEPwXQNA2Hw8H6+jrRaBRd1/H7/XR0dBAMBqmvr+fm5oZYLMbV1RULCwu0trZiGAYOhyOr90f9qPwVFRVEIhFOT0/Z2tpic3OTvb09VldX0XUdn8/H4+Mj1dXVSCm5vb1lYGAAXdfT2pQxgBAC27Zxu934/X6am5sJhUKcnZ2xvb3NxsYG+/v7eL1eJicnUVUVwzC4vr7O2Pd/WvB2E7fbTVNTE42NjfT19bG4uMjS0hJSShRFQUpJMpnMqYXVTFrs7ygpKaGrq4toNMrIyAiapnF/f09LS0tOADLbT61t21RWVjI+Po7H46GmpoaJiQlqa2sz6vu874IUhMfjYXh4OCff876MUoL5CBfsf+AX4BfgF+C/A1BTs5ppmjldKEKIrGfK5+fn11kh7+HU6XSiaVpWOYlEgt3dXeLxOOInx/OysjL+ADkXCDIvJNg/AAAAAElFTkSuQmCC",
        "connect" : "data:;base64,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",
        "desktop" : "data:;base64,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",
        "down" : "data:;base64,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",
        "up" : "data:;base64,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",
        "encrypted" : "data:;base64,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",
        "exit" : "data:;base64,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",
        "find" : "data:;base64,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",
        "finish" : "data:;base64,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",
        "inbox" : "data:;base64,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",
        "ktip" : "data:;base64,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",
        "ktstart" : "data:;base64,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",
        "ktstop_all" : "data:;base64,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",
        "ktstop" : "data:;base64,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",
        "laptop" : "data:;base64,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",
        "setup" : "data:;base64,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",
        "naptar" : "data:;base64,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",
        "package" : "data:;base64,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",
        "password" : "data:;base64,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",
        "fwd" : "data:;base64,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",
        "rew" : "data:;base64,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",
        "redo" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgkHFCk16yoAAAchSURBVFjDzZdtjF1FGcd/z8yce865L7vbZXehLQUKFCwQgrwoNZrUxtKg0g9UjQFCiAYawcSQoCFRE2NMNBFijH7QTwqBYqiNrQJSoEFNRV5CRAukhdIt0Hbbbtm9u/ftnHvOmccPe2/dthRQhPgkk8ycmXn+v/NkZp4ZeP/2U2AcuKH/IY4iPhwTblh94SWa/G6jbrrtDh2uVTvAyn73gtrQu7ow7wtAOePz53yC7Q+/wpA/VXfc/vPom2vWPgk8RWUsnm7UGYwqnH/WuR8QAEQtn9LIu7SSluyYOMi1yz6jz99x14qzY20D188kLXbt3c2SkdEPBOCiZprSzFM6eUY7a1NP6nJoOtHHbv6R3rJi1X3AkwBvHplkdGj4fw5QnHXKGM28S9cXIEqhikguOw/tl+suXav3fvn2lUA+OjK2eLI+xWC1+t8BDA4OnvDNWrOyEpUpFNo+Z7abI6JYCQitJc/aMlw7Vbd/7W6r7c4+WwrWzjSbVMrl9w5QrVUAmJmZYUYV4BZgAzCxcHBsJMm9ZgqBWAIjFGrxqriSJXSOocBKPS/0qW/crcsGR7cgrG+128Rx1NtIJ7HThsY4WD88V79sYXDw+Yn7A+u+uOr8y1lz3qWcf+qZeJ9rI2lJyRgyFUrGERhD2RlKrkQoIUa6KJZ2rrr89BGu+cX35dl9u78C/KpWrb49wPDwMFNTU/3mnUPlgR/euOJqrll2mdacxWsh7SyjXXi6eYIaizUlYuMIA0sogqjBGUfoLEYUQcEbFp1e05U/+47888CBK8nzZ04AWLhwIRMTE/3ma6svXHH2+hWfZVEp0kpgpPBKp1BUcw4kGV2EWITIWko2wBklUCF2EdaBqCIIRgRQihw95yMDUr3tRsZGRsbsfPHly5czPj7ebz5/3cevvuDWj63RxVEoUWCkUMUYwavyhqbgPOI8iS3oaE4uGSUXEFUDothgAkNcEWxFCGJDOOAYXlIVW4t1slmX7S++uOOYCIRBQJplAL+99pJPr7v5itVadiIl4whEcMawq1FnV2uK6XaLVHNy9SgG1KMKHkUVrBgQofAFqkpXMxRQVS2ZgPue2CjVocoy1xev1So0Gi0Q7vzkuZesu+nyVdr1iUgWUPcpu5Npdrfq5N7jjEWcQOZw/ZVsAP33sp7bMArWotYTGwcegiBkw7ZN4qysn52a3X1MBEqV4IJhO/jSj7/wdbXdTJwxNIou/+hMkvqC0FmsFZyxFF4pvJK18vnJCVFB0TkgEQhA5qgUPPdu3SjNTvu76vUHcRzhAAYGB5idmaXbyrZ89ZprmWk1sSJkKK923iI3UAmdRmFMknt55c09NNot8jzlo2ddrHlWSC85oVaRwGDNXBQKr4iIikF+ueU+xNob1Ov9YRjS6SRzALMzsxAycObAonOHa0PazLuSF57JpElhlcBanW615KHHNjM5/dZLwDZgCvjekgWLZbBSBQwaKMZYSqGlMAaDUjFOXz84Ib95YnOrGlYXN5LGTDmOaHcSAI6uAVJuu/jM5dTTNghMJw0KFBcEOtNuyD2PPJg4FywBjszftfvfOrh+aOg8VAwGcM6QW4uIaMkGsvlPf5Sde199ALiukTSoRGVanfZRB26es3Vjw6NkeMl9Tq45NgpxVuSeRx6kWqktarYa03Ec0+l0+nP22dAhxs6tfAtiDVFQ0v0T+2XDo5tAuAp4HGBBZZDp1sxJkpHhnFqlTKIp7bSDOMNgtawbtv0eY81NzVZjunysOMBEOYqwVhAL1oqWKmUe/vNW2fDopmevvOCKAOXxqHdFO178mAhEQTjkgSRN8KpENmLXG3vk0JHDdeAegPax4gBHuupxcaiRsbx+6IBs3nK/T5JkLfDw0y8/RzmKaSedkya7owAihlw9uXqcCFEY6dZn/iJhGK5J05SlS5fOPyX7tmXrX7e1h4eHy0+/8Bzjb+7dCHwJIHCWkdGx+cf6O9+I0m7iO90EsoygFDI5PSnNdvPlNE2fjeP4BPGlS5cCsPJTa2oP/GHjXeP7967qiw9VKmR58a7iAEdzgQpXjS0YOWMorlGKInbs2cm+wwe+BbyQ5/kJE+v1OlEYsXvPLgUeR9kbRiFFXpDMHefvyY5GIAjcT3aOv4KzVgXVg1OHiV3poXeanKTJMe00Sf/jO91RgCzNN71x+ACttCPee0nTlE7ePfJBPy0MQKUyd+0yzvz6bzv/jveKGOHDNhNGpSWArr3qc+oCl/YAzwBOB07rlYXAKcBorywAKkAVqPXqA0DU22XunR9XczbQGxiZwHxbM38rlte04PqeQwsUvfHdHlj/VGkBvteX9kreS87zdTxQPxlArQdwCuDEcpEWvN4Ds0DWEy16AElPyPfqfbh+f3acRjFvztsCAJR6YkGP3vXCGPQcFPPG5j2g9nG+uvP+tj/eHxeN/y/7FwWjIu1PCzX0AAAAAElFTkSuQmCC",
        "reload" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgkHCtM61kkAAAk9SURBVFjDzVdrcJTlFX7Ot5vdzW52k02ym2RzI0pAriFaLgkUzQYwXOoURHGwVFQYKwzUmdqi7VQGxx8tM9ZqO6NoRSleEJEgo1yEQBLHYBKuxUgJMRtyJZvL3ne/b7/L6Q9MJlxCi+2Pnj/fN2fO+z7POe95zzkvcJtSUOC6Lf3/RGzJyTdTCwCM33+vkfT0tP94b7o1sBXBQGikakNRUf6y4uK0koICqzHFZkYorOGbpgGxvqH1S0/r4B4Abw4ZJ6fYEfD7fhgBi8WESES86qqQ8N769Xc/uvbJIqSlJyIYkqHICoiIE/REaY5MpKUV4tzZXrz22h5sf6fudQDrACAtLQUDA/7bI5CebkV/fwgA5pSV3/nly1vLwUQ8GFAQi6hEekAggqAnCARYjASTgWGz6jnLNZEYATy4fAeOfNE6C0B9it0Gvy94UwK66xVWqwV+fxgA1v1ha8WejRtnwB9UuNcrkhSXSWZAloC4okFVGQl6HTQmBCIaYjGVBvq9iEQi/Ktnyshg0NYcO97mFUXppN1ugyhKt46A3W6FzxcCgNVvbV/6zl0THBwKygiGJIrFgL4+BXFJARNB0wC9XoMgEKw2AS5XIkwmHQgaWFGRYjPw5Mn52LvnNK1+Yv/DAD62Wq0IhUI3J5CaasfgoA8A7l63vvTU8kcm8+CgSL29UYRDRg74QBcudKOjow/QCDq9Dql2K+4ozEFuQTI0bZAzM4mc6XroBB0YhCSTgLFjsviDXY307K+PuAD0FBS44PF0j54D95WNVZ//bZnQ0xdmT2sYne0aPq08QWJMQWamszUjI+uE0WhoVlVZ7/UOFPX0dM/y+33O8vklmFcxhW1WHxxOA1nMBpj0GgS9wNMmu+jppz/t3PXRN7kmUwJEUb6WQEpKCvx+PwC8sO1vK7cQaXzyZA8GBkCf7K7B7Nlz9mdlZb60adPvT06fXsQjCf9y48akzq7uRXUn6p4zJ+qK165bxCR4KTffDItJD4uJYTAaOdNhoXHj/rwawI5Rc2DWrDv4qfWzUbnnW6Q7nbz9rYNUUVHx+qFDh9b9u4LCzMjLy99hNht//uCKqZyVLVBqugH2JILKwIzibDz08O6e2hqPy2azIhgMDVezIZlS/KMCVB39jmMS8673q2nGjOn78vPzNwCA2+2+KbDb7Ybb7QYRob398uMdnd2njh9to9MN3azECYEoA8zo7g7zA0vuygKgHwJ3u93XEKgYU+DAezvqSFNEEoTE4Pz592/Ytm2bOmfOnFE9P3bsGERRBEAgIu1kw2n3ibpTKuks1NLiR1xkhKKMjishzJ6bBwAPjFw7LA5n8uH5FVO48pNV7O39jbbrg58xYGr40yvvWYZs5s2bd8tjSEpKXqLXGw8DQmT+gvF89tQzvHvvo7x950p+98OVXHviKS0vz856vakrMTHxREaGc9JwDowdm3nWlW0u2le5Go1n2pCabGRHioHuK38fbZdpOtB3EgDKy8tRVVV1Y9+w2Z9wOHVvP7epDHN/nAufL8Td3gjJCiDGCWJMg9lCzKqBsjIMWPbTnQgGowZh6GxbWnotm56di8YzbfAHJXReiVBLZ4TPnFqLp9bmNwLYCgBVVVVIS7ux26kqtZlMAu65x8kXmvvgaY+QJAK+AEMMMTSVEA4z9fZF+S9/bUCC3vYCEcnDEZg0xdV84LNVhafO90COa9ALeuh0hKgY52mTHKitbqVfrNvfCGAGAOTm5qKjo+N6HvULFxfPePyxKTwYVEnVVKisIEEwQCBCVJK4vS1Ob79R7Q0EAzlEJA8n4dIHxhdeah2EJiuQJA2aKiAUUhCLMp0+N0DjJ+bwxx+tng6gE8A14KWlpUO/Mw9+fkY6eixILCisQYZAAhSWEYuLCPiZ/v5ODWbOLHmSiOTy8vLhWzB//IR0BEISSxoQF4GYKCMaVSGJQDSqwudTwSxi0uS8bHNi0uqRbtfV1WH8+PEAgPvnV2S8+cY+/PO8kVSVWdUYUowR8IMrPz4Pa1LqV18cOfTZUO0Qrvb7xCWpjhRIcYWgEGQZCIdVyCpDUYF4XOXnn99LDz+yK3SlJ7oyGgu/e33sL168iLy8PBw+cigwbepM62uv7oSn2UqDfXEE/IwvDnyHc2ebUVw8bRcRDV9DAQDmzh0zORRUIEYFxMSrlUsjBmuEri4fNj1bSZc9kc8B2AYG+j8EgHvvvfeGRGxvb0dqairO/qM+nO5wFr/6yg60tuixd/dZNDZ8S9nZOaqmaYdHFjYdM+s2b978dprDSt9d9OL8+V64slNZVZgUFYhFJSyomMg6IT6up0fyx+Px+qtFnBHwB66dJWwWBPzB76co9ciqx+Y6Wy41Q1GN7O3tp6KiKfvt9tRtTU3fsMfjuUpgy5Yt7HKNiX1Ve9nT2SX7my9677BaM8hiAyuSQklJZhjMQGlJDlQ1vrCpyTsNwEfXgwNAXJIBYKHDYbm0+cXFTrNFz4AdjfXNlJHhULOzc9ZUVla233IkW7FixaKjR49+/uiqxUiyBlmfQJRkMcJkYc7JSkQ8HqeXt9aisbFzH4CDAAa+7ylznBm2xQsWFN5ZvmACgkGVr3SLqP+6ixobLqCsrGzz/v37XxwK/1AZppFNZUhZXl7+UkNDw++eWLMUZkuQExKIjKYEGIwEq0XgvHwLRUJxNH3bjcH+GHR6AyZOcMGeakQ4KrPfJ1Nfn8yXPSH6dN/XKC0t2S1J0pPV1dXhkTjXzIQejwdutxsejwdTp049npWZZTlw4Hip2eyknLwUlmWJFFVDTFKpz6tAlhnO9GTkjkmFK9OGuKLC6xXR1SXB59Nw/lwv1dY0obSkZKcoiWuqq6uj14Pf9AhGGi1btnTVmTPn3ggGfeYydzEmTMiHylEmXZzAgEACGICqakwQiDULBgZE1Fafhqrq1MLCO1+JRCKba2pqbgo+6lg+0njRokVjmbGhpeXSQ/39/VnJyTbk5DiQZDXBYDRCp9MjGhHR0zMI32AA+gR9cFzhuK+YtT+2tLTUtLa2YjTwWz5Mrl+0ZMlPHKqq3sesLvR6+6ZGItF0VVVtRMTJyda+9HRnI7NWBeCcKIrna2pqlJvtc1tPs9E2WL78IVMkEnYASGBmIhIGDx484Lt+3Q1Dx38jo41kP9Tu/0b+Ba9Se3uvXKxQAAAAAElFTkSuQmCC",
        "remove" : "data:;base64,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",
        "tv" : "data:;base64,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",
        "vlc" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFA0oEJFEdwkAAAemSURBVFjDtZZZjBzVFYa/c2/dW1W99/SsHma8jJcxM+NFhmRiMAbbZEgUCQIkEIhRFohi8UCIIIuIIA+8oECk5CXwkrwgJBIklAURgQQRi4JjJ2CU4MGGeAePl9lnuqu7qm4e2rYSYoNB5kgllY5O3fr1/+f898Anjxbg8RUXlY70tmUPADd9kkPkk3zkeeqS4SVtOy5d0e2m5htiVeJOzszKU9sPb1IufTHhU45cYPb/+rufS9cP9LmNQ32ur7Pi3v7NdalCRj/uWerjFJdzIcDSLQMXLezvLcvwUJbuVmHbDUsJfSPXXrp4hbG2p5wNPj0Jgkz2d49+fd0NK7qNtHbmyLcETJ+c59iBGY5Elpt+/tyjwLbzlvN8Cxd3dzA9XytffdXGG5eu6iFb3Utjts6siwkCTWtXBj2lKOdzwxMzsxdegn1HxqjV44e+dctX6PjMl/BUA5MVPCPY0MOGIHGV/t621Z9KD1g/sJs3Xn5Hd3cXNt9GYctPUH6OwIDnCUYSdPcaLts0IkDlgktQj2p3b1nVC0rQ2sMWOwivfhCZHkUmR/H618H7M/TNjqKUujFN08cuKAO9XW13byy8gxrfi5gAlEJ5Gmnpx168FTKdTE5XGVjZ70qZ4NYLLcHmO0cGO0Lf4I8+Qfyvp0BZtBaUCRDRzE7PkIgwc2SPbL64bQNw8ZnJCc49lvqDCd96JEkKcCVwLTAyNDT0w3uuaq2EfiwYn3TqAObETlShA11cghJh/7/3MT76N8bfeJ71yytu5+Hqt6fnqstT5/rjOB4slnJvRbV647x8YP2yylvXX7JwZc4P2HlggnXX3e62tB0QNbEH4zdJM9bh+w6yC1CVIX7/25fxGtN42lHIKkqb7uK6r97ivv/FIdk3NsnTO/ZHY5NzwflI0PeNDX0re0oFOkohL749xqbLh8WsvhnbNYBOIrSAZwW0j4qnUMdfRVUn8ZTDSEKx/wpyoeX+H90rew69x/WXtHPvNct84JrzAbC2NetjPDh0Yo7+NcMIdcChBreSrr8faenCU0lTQQ3Kc4SB4GlDUFlAccVlmCBgZGQTY0EfhaziylWtAEPnAUAWtRQsSsMro+/z5ZErUNpDxIM0QYV5WHUX6eBdUFqEuDraSwl0nTCfoXPjbRhjsNagbJaNfR5/3jVGezFwbfmg7yN9oJL3VxStcgrkH4fG+cHCEoiAGNDNV6Uc5HtgYBtpdIxGPEf/1zTVROMbjfYzKEnxjMeViyMe2TVFkEV6W7Nrjs/UPpyBy5ZX1jaSVLRAJpPFHtmJEw0kiAIHKNGgNEppdHYBrtRPqWsRhVIZ7Wew1sP4IYGboLcl4L3xCGV8hhbll3ykBEs78v0ijt3vTbKgJQfje/HmDp4pVKIQEUQUohzgcCiUUlhryZdKeH6GfLlC3o6RiOHoZA1PaZZ2Fto+EkCl4GVtqIhSRzmAhtMw+gec8nAORAQERGlEmoNsjMUEIdoYfN9SKJbwbIiJXkYph9WKtD5PT3sIUPwwAIv7OnLks4b1/S3MztVIEkhmjiGv/woaVUAhNHsBwDmH0h7a+ARhhnrUYHZmmrE//hjGplCuWZ8Ca1e2AAx8GIA1yxdk0Qa6WixRnBAEGnGOdOow9vWf4t55GpdEpKngXBNFGtcRbdA2gzv4F+ae+R62cYgoinh170mGl5eJgb6eIsCAb/S5pkAN9bZnqMUxUeoYWdPGX/eOs2VNmSR2JImHP70dtr9MsPBSkuIKVNgOpMjMP6m9+xrxXAPjJSht0Y2UO36xg9d+dhUmSMkUDZ2FcPDodPXsDAwPVFbZjDibazrdzRt6+NOuMWbnHM45krqgtcYv5EkmR8lOPEs49jhh9Rl8u58g8PHCAAE8cWx7ZAcP3DpALi+I0sRRzPDq1qFzSrC4q7AhMU68MMAGAirll7ev5uFnD7J99CRWFM413S8beCQNhWSL1OZjdj+3n4ljEfWZGi7VPPLkHuI4ZeuWXppKaaL5mEp7bvicALo68u3W1wSBoH2D05B6KQ9uXQbacOdju3jl78exDUWKwvNDGtWIwy/s4+R8nhd2Z7jvyePc+dibrF5W5uE7BpmvR+CaY9uIEi7qKIRg/bP1wNDgYBuiLXgpImDCAIkT6vUG65YVWbuwyOMvHeahJ9+lu8MnNbCwGHB4rMbeozP0L8jxnS/00d22Cm2EsDUDk1WyZZ/aXIJvYHFPFqgvAXb/DwAB2fXGUb75+UWQpoRdBtdoUJ+OcbUESR1iDfetrHDPfIzWirlagmuk1GoxJCmII8gqjK/xswGel5JvDdACEnoEXS2ceOkEwGf/D4CDN5947hATJwyFrKUzo4kQZhsJ9bojaSRU45RaPcEagyJBCcgpcwqtbhKrmlZtrBAqRTlnmJitMxc1iOoHeeGtMTTMJGeRIHN8YvK1qi0Ot5eLbkqUuDQBFeOZFC9NyJ5eX0RAaXAJLgVBEKVOOxP1uE4UOWZFOF4Dl1ocFmU9d2xijyTw/Nk2Il+Ezc5xG9DaJAUQFQBKK9ypDCLqjBVqLc20ax6m5PSdeerigtQJ4hxSb9QVqduRwgPAibOtZAqwH2DHnXrsf4HW51jx5Qzwc0d8+ucA/wE/uqloRbpHogAAAABJRU5ErkJggg==",
        "date" : "data:;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEAAACxABrSO9dQAAAAd0SU1FB9sHFgozGJnv6q8AAAgtSURBVFjD7ZdrjF1VFcd/az/O4z7nTufVGdpOW5BWIYQEDKS1pSAhIZCYQAwJMSZGXmIJijGE8F0/EBNEpaYiMRFERUEEBYoQY2IRtGnkUdRqwkixM9POnZneO3PvOWfv7Yd7px2Y+tVP7OQk5+yVfdZ/rfVfjw0frf4aGxv7v+naMDFx+l1WC9ZPTg4nWef4RZMb8xAIufNkRY7yAS8Bo03hvA+5c3TyHAGc94Tg0VqDRwDvRAoFJFqjRJEVhQ9Gu+5yJz22eOr+4zMzD63oNKsBtOaau679xDa1c8vWGC0IEJcrmMjQbi7gXEF1aBhCYGm+CSLYKCat1VlamMfEEUmlysL0cfJuxrpzNuCcozU7gyDMLbW577kXdgFnB3Cq3a6X4ohgFT4E8nabHV+8lXJjkKnXDnLi6FF2fOnLpJUqT9xxC3SXue7b+8hdgQ7w+G1f4Mb9jxJaLY4ceJEr7voK+z9/M5ECT6CURCwvL51YrVOt/qitaww3alUiAimB1BWMbdvO315/jQuuvZ6LbriRP/3qaeJqjXKlwpZde6itH+fg4z9mYNMk26/Yw1N33kZ5dIzde+9m/82fZUgLVRFiEarWoJK08j8BFM6PrUtiLJAAJkmoDA0ze/gQplJlYHIr84cPgVLEtSo7997Nu2/8FfKCk8eOsefe+6kqmJ+awhU56VKbAAQgBqrGUI7ic1br/AAJG+vHf/Lg7stvKke2hy44ThSBRmRYXFhECQxVqyxkBfU4pplnWOeoJZbFrKBrLENaWMgLstzTiDQOwQNBhDRNuP3p38y/NzPb2LhxI1NTUx/kAHk+PnjpJSSlEkEEMRED3hHynEbwaFHoNGGoVCYqpUyWUlyng2u3qczNUxQFGEO5XMFUKuRZBp1lKAqCK8AVYcPrhwfem5lNp6amlteQsJwk4yM7dhK8QyuFEiGIoLRGRAjeU6tXefbZFzjwu1d4//g0gjC4rsFVu3dww2euZ37hVN+tAe0DwQVCCD3GG2Fi82a2dbKL3zly5I9rAGw7/9yNpcjQzQLSB2A0IAEtgXK1wi133sPsyZNEkYXQi3Br8RRP/vLXHHjp9+z73rdotdp457EERAUEx3IBwSEbN0zw2l8OJWcl4cT4+ghtMNYQGSG2go0ioiimVK3zwIMPMzc/TxxFuMJz7z17+epdt9PtdomiiMVWi337HqFWiomtJo4N1hpQllgLiDA0NMzSUrs4G4DhsbERjIQQaTCRBZuglUaJEGnhpVf+gDUG5xzXXXs1Oy+7lCt37eCaq/dQOIc1ht+++DJpuYyNLMYqrFWkscbGEUlsGRwcoNXqlNcASMvlbY2BAbRRgtYYZYgkoAS0hm436+UTgAhZlmEjg6jA6Ogwwa/E2TD17hRJZEhshLUxNkpIk4g4NjQaA0TWbFpTCcX54XqtitEGLT1cyigCAQLUamWSJCaEgNGa555/iUa9TqVa4mdPPoMxmhACWmtaS8tYo/EhYADvPd4bQgg0BupAmFzjAWX0xkq1jNGgjaCM9JiMYJQi6zru+/pdnJxr4r2nlKb89BfPsP/Rx3HOISKICM55qpUKoiNEW7S2GB2hNUTGMjY6TAhsWgPAWLNleN0QxkRYm2BNRKQTjI7RKsJ5x1VX7eIH332AsdFhWq02nU6X8bFRPnnJxTjnAMiyLtvO34q1CmM0iIAWbJxiI021UiFNky1rQmC1ndiwYRwT9VwVguBD6OV/ACWQZxkXXrCdnz+2H0GhSzGz709zzfU3kSQx3nsuvODjpElCnuVoBVrpMzT3Bq1gZGR408zMDJGxZwAoo7cPDQ6iUXg8iEIpjyAIil5zDmTdnJnlOd6d+jfPH3iZJ596joF6DYCTc02+/50HaLXaiCgg9P4VOG1ICIF6rTYKkBX5GQClJJmoVqtkRRdNj1C+6B0CEAVZ7rjosisZHGxgrSWOYgbqNUIINJsL3Pu1vZy3ZZLOchfE95TTU57ljhAccRzTaDRYE4JavVZLyynhlD/NfGI5bYUItJaXGGw0qFVrvX3vabWXSOKIhx/6Jpdfegnt9hKhb7VG9zJXApE1HP3X+9QHBsLJuTkBGkBzBUB1Yv0Y2CQo05GVFtnrAfS4EISimKdWq1CvVRgeHuJj521lz67L2bn7U7QWmywtLSFKEHTPAAEtgg+e1w+9QSmNeeyxn8mWTRs5ePDV6moA42OjI0AqSW2lg/d97+kx0Dkmz93KwYOvAgXQJXSWcYUja7UwWhMsyOljAYLnrXf+zptHjjI/P8dgvcEdt36OR370BEDldAhqtfrAO//4Jz985JHgXS5JHJOWyiwsLrC8vEy3m+G9oyhygg8opYgTSylNoZ8p3jmU1hTOoRQkSYnp6RmsMQw2Btk8uZm0lPLnw2/xxptHGBsd3XB8evptA7C4uHCi2Wyy2DxBAFoCSgnWGhRCJY0w1qAFWGnTIaCNQQSCDxTO4YridPqeWmxho4jgAiebc0zPTlMUBc55TszO4kMoryZhdWHxVIYm8nkgTixGW7QWvAdjFVqpMwrpx9Y5ENULWOi1cPGAd70qKoKKNd55FAptIpQEmgsLzMzMvA0k0q+G546MDH+jXK58WiulgEh60ZfeXEARRFAiQQl4j/gQ0EoEkUyJykUE550EekNIv2wYpaQuSkle9EB1OhnOFW8eO3ZsN5AJgFKSeB9GgEFgHTAAlADXp6EHcqBzlnmyz3cEyD4k9/0zK3OpAE3gPyLiQghLcpabk+4/Masa8NmG2L73dD8twodkob+/GujKmRVZ9tGl+L814WknRlTCawAAAABJRU5ErkJggg=="
    }
}

var day;
var adminTabs = {
    'Setup' : {key : TAB_SETTINGS, show: 'all', name :  'Setup' , pic : 'setup', init :
        function () {
            var html = '<table width="100%" border="0"'
            + '><tr><th width="120" align="right">Work Time</th><td colspan="100%" >'
            + '<input size="5" value="" id="optionsWorkTimeStart"/> - '
            + '<input size="5" value="" id="optionsWorkTimeEnd"/></td></tr>'
            + '<tr><th width="120" align="right">Theme</th><td colspan="100%" >'
            + '<select id="optionsTheme">';

            for(var key in UITHEMES) {
                html += '<option value="'+UITHEMES[key]+'" '+(UITHEMES[key]==options.uitheme?'selected="selected"':'')+'>'+UITHEMES[key]+'</option>';
            }

            html += '</select></td></tr>';

            if (isAdmin) {
                html += '<tr><th width="120" align="right">Admin messages</th><td colspan="100%" >'
                + '<input type="checkbox" id="optionsAdminMessages" '+
                (options.adminMessages?'checked="checked"':'')+'/>'
                + '</td></tr>';
             }
            html += '<tr><td colspan="100%" align="center" style="text-align:center; vertical-align:middle;" ><button id="buttonOptionsWrite" style=" vertical-align:middle;"><img title="Save Worktime" style="padding-right:5px" width="16" src="'+getPic('save')+'" > Save</button></td></tr>'
            + '</table>';
            scriptJQ('#nngAdminDiv-'+TAB_SETTINGS).html(html);
            scriptJQ('#optionsTheme').change(function () {
                scriptJQ('#nngHelperTheme').html('@import "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/'+scriptJQ('#optionsTheme').val()+'/jquery-ui.css";');
            });
            scriptJQ('#buttonOptionsWrite').click(function () {
                var wtstart = myTime(scriptJQ('#optionsWorkTimeStart').attr('value'));
                if(wtstart.status != 0) {
                    alert('Wrong start time format! (0-23:0-59)');
                    scriptJQ('#optionsWorkTimeStart').focus();
                    return;
                }
                var wtend = myTime(scriptJQ('#optionsWorkTimeEnd').attr('value'));
                if(wtend.status != 0) {
                    alert('Wrong end time format! (0-23:0-59)');
                    scriptJQ('#optionsWorkTimeEnd').focus();
                    return;
                }
                readOptions();
                options.workTime.start = wtstart.formatted;
                options.workTime.end = wtend.formatted;
                if (isAdmin) {
                    options.defProject = scriptJQ('#optionsDefProject option:selected').attr('value');
                    options.adminMessages = scriptJQ('#optionsAdminMessages').prop('checked');
                }
                options.uitheme = scriptJQ('#optionsTheme').val();
                writeOptions(options);
            });
        }, refresh :
        function () {
                scriptJQ('#optionsWorkTimeStart').attr('value', options.workTime.start);
                scriptJQ('#optionsWorkTimeEnd').attr('value', options.workTime.end);
            }
        },
    'Projects' : {key : TAB_PROJECTS ,  show: 'all', name :  'Projects' , pic : 'desktop', init :
            function () {
                var html = '<table border="0"'
                + '><tr><th align="right" valign="top">Used Projects</th><td colspan="100%">'
                + '<select multiple="true" id="nngUsedProjects" size="12" style="width:650px"></select></td></tr>'
                + '<tr><th></th><td colspan="100%" align="right"><table align="center"><tr><td>'
                + '<img id="imgAddPro" style="cursor:pointer;" src="'+getPic('up')+ '"/>'
                + '<img id="imgRemPro" style="cursor:pointer; padding-left:20px;" src="'+getPic('down')+ '"/></td></tr></table></td></tr>'
                + '<tr><th align="right" valign="top" rowspan="2">All Projects</th>'
                + '<td valign="top"><input size="63" id="nngProjectFilter"></td><td width="30">'
                + '<img style="padding-left:10px; cursor:pointer;" id="nngProjectPic" title="Filter Projects" width="28" src="'+getPic('find')+'"></td></tr></tr><td  colspan="100%">'
                + '<select multiple="true" id="nngAllProjects" size="12" style="width:650px"></select>'
                + '<select id="nngAllProjectsBackup" style="display:none"/>'
                +'</td></tr>'
                + '</table>';
                scriptJQ('#nngAdminDiv-'+TAB_PROJECTS).html(html);
                scriptJQ('#nngProjectFilter').change(adminTabs.Projects.filter);
                scriptJQ('#nngProjectPic').click(adminTabs.Projects.filter);

                scriptJQ('#imgAddPro').click(function (){
                    scriptJQ('#nngAllProjects option:selected').each(function () {
                        var found = false;
                        var v = scriptJQ(this).attr('value')*1;
                        for(pr  in options.projects) {
                            found |= (options.projects[pr]==v);
                        }
                        if (!found) {
                            options.projects.push(v);
                        }
                    });
                    adminTabs.Projects.refresh();
                });
                scriptJQ('#imgRemPro').click(function (){
                    var arr = [];
                    scriptJQ('#nngUsedProjects option').each(function () {
                        if (scriptJQ(this).attr('selected')) {
                            scriptJQ(this).detach();
                        } else {
                            arr.push(scriptJQ(this).attr('value')*1);
                        }
                    });
                    options.projects = arr;
                    writeOptions(options);
                });
                readTTData( function() {
                    scriptJQ('#nngAllProjects').html('');
                    scriptJQ('#nngAllProjectsBackup').html('');
                    for(var i  in ttData.activeProjects) {
                        try {
                            var key = ttData.activeProjects[i];
                            var p = ttData.projects[key];
                            var name = getProjectName(key);
                            var s = '<option value="'+key.substring(1)+'">'+name+'</option>';
                            scriptJQ('#nngAllProjects').append(s);
                            scriptJQ('#nngAllProjectsBackup').append(s);
                        } catch (e) {
                            GM_log('Projects init error:'+e);
                        }
                    }
                });
                adminTabs.Projects.filter();
            }, filter :
            function () {
                var filter = scriptJQ('#nngProjectFilter').attr('value');
                var pattern = new RegExp(filter,'i');
                var selected = {}

                scriptJQ('#nngAllProjects option:selected').each(function (i) {
                    selected['s'+scriptJQ(this).attr('value')] = 1;
                });

                scriptJQ('#nngAllProjects option').detach();
                GM_log('filterProjects');
                scriptJQ('#nngAllProjectsBackup option').each(function (i) {
                    if (pattern.test(scriptJQ(this).text())) {
                        var t = scriptJQ(this).clone();
                        t.attr('selected',selected['s'+t.attr('value')]==1?'selected':null);
                        t.appendTo('#nngAllProjects');
                    }
                });
            }, refresh :
            function (init) {
                if (!init) {
                    scriptJQ('#nngUsedProjects').html('');
                    options.projects = options.projects.sort(function(a,b) {
                        var as = getProjectName(a);
                        var bs = getProjectName(b);
                        return bs == as ? 0 : bs > as ? -1 : 1  ;
                    });
                    for(var pr  in options.projects) {
                        scriptJQ('#nngUsedProjects').append('<option value="'+options.projects[pr]+'">'+getProjectName(options.projects[pr])+'</option>');
                    }
                    writeOptions(options);
                }
            }
        },
    'Day' : {key : TAB_DAY, show: 'all', name :  'Edit day' , pic : 'day' , init :
            function () {
                scriptJQ('#nngAdminDiv-'+TAB_DAY).html( '<table width="100%" border="0"'
                + '><tr><th width="120" align="right">Day: </th><td><input id="nngEditDay" type="text"/>'
                + '<button id="nngButtEditDay" style=" vertical-align:middle;">'
                + '<img title="Edit Day" style="padding-right:5px" width="16" src="'+getPic('date')+'" > Show</button></td></tr></table>'
                + '<div id="nngEditDayDiv"/>');
                try {
                    siteJQ( "#nngEditDay" ).datepicker({
                        dateFormat:'yy-mm-dd',
                        firstDay: 1
                    });
                    siteJQ( "#nngEditDay" ).datepicker( "setDate" , new Date() );
                    scriptJQ('#nngButtEditDay').button().click(editDay);
                } catch (c) {
                    GM_log('datepicker error:'+c);
                }
            }, refresh : function () {}
        },
    'Hidden' : {key: TAB_HIDDEN, show: 'admin', name:  'Service', pic : 'service', init :
            function () {
                scriptJQ('#nngAdminDiv-'+TAB_HIDDEN).html( '<table border="0" width="100%"'
                + '><tr><th width="120" align="right">Images</th><td><select id="nngAllImg"/>'
                + '</td><td><img id="nngShowImg"/></td><td colpspan="100%"  width="100%"></td></tr>'
                + '<tr><th width="120" align="right">Generate</th><td colspan="100%" width="100%">'
                + '<button id="nngButtGenerateDay">Day 2000-01-01</button>'
                + '<button id="nngButtClearDays">ClearDays</button>'
                + '</td></tr>'
                + '</table>');
                for(key  in pics.buuf) {
                    scriptJQ('#nngAllImg').append('<option value="'+key+'">'+key+'</option>');
                }
                scriptJQ('#nngAllImg').change(function () {
                    scriptJQ('#nngShowImg').attr('src',getPic(scriptJQ('#nngAllImg option:selected').attr('value')));
                });
                scriptJQ('#nngAllImg').keyup(function () {
                    scriptJQ('#nngShowImg').attr('src',getPic(scriptJQ('#nngAllImg option:selected').attr('value')));
                });
                scriptJQ('#nngShowImg').attr('src',pics.buuf[scriptJQ('#nngAllImg option:selected').attr('value')]);
                scriptJQ('#nngButtGenerateProb').click(function () {
                    var active = {id:'666'+(100+Math.floor(Math.random()*900)), type: TYPE_MANTIS};
                    var d = new Date(new Date().getTime()-DAY);
                    d.setHours(16);
                    active.start = date2myTime(d);
                    track(active);
                });
                scriptJQ('#nngButtClearDays').click(function () {
                    var keys = GM_listValues();
                    GM_log('clearkey keys:'+keys);
                    for(var k in keys) {
                        if (/^day\d{4}-\d{2}-\d{2}/.test(keys[k])) {
                            GM_log('clearkey:'+keys[k]);
                            GM_deleteValue( keys[k] );
                        }
                    }
                });
                scriptJQ('#nngButtGenerateDay').click(function () {
                    var d = readDay('2000-01-01');
                    d.day = '2000-01-01';
                    d.minutes = 0;
                    d.state = 'fake';
                    d.rows = [{id:79992, type:TYPE_MANTIS, state:'failed', project:0, start:'09:30', end:'11:29', length: 180},
                            {id:83083, type:TYPE_MANTIS, state:'failed', project:0, start:'13:30', end:'17:30', length: 300},
                            {id:83083, type:TYPE_MANTIS, state:'failed', project:0, start:'11:30', end:'13:29', length: 300},
                            ];
                    writeDay(d);
                });
            }, refresh :
            function () {
            }
        },
    'TTData' : {key: TAB_TTDATA, show: 'admin', name:  'TT Data', pic : 'laptop', init :
            function () {
                scriptJQ('#nngAdminDiv-'+TAB_TTDATA).html('<table width="100%">'
                +'<tr><th align="right">Customer</th><td colspan="100%"><select id="nngTTDataCustomers"></select>'
                +(isChrome ? '' : '<img id="nngTTDataReload" state="track" src="'+getPic('reload')+'" style="float:right"/>')
                +'</td><td><span id="nngTTDataCustomerActive"></span></td></tr>'
                +'<tr><th align="right">Projects</th><td colspan="100%"><select id="nngTTDataProjects"></select></td>'
                +'<td><span id="nngTTDataProjectActive"></span></td></tr>'
                +'<tr><th align="right">Tasks</th><td>#<span id="ttDataTaskCount"></span></td></tr>'
                +'<tr><td colspan="100%" id="ttDataTaskList"></td></tr>'
                +'</table>');
                if (!isChrome) {
                    scriptJQ('#nngTTDataReload').click(function () {
                        adminTabs.TTData.refresh(false);
                    });
                }
                scriptJQ('#nngTTDataCustomers').change(adminTabs.TTData.customer).keyup(adminTabs.TTData.customer);
                scriptJQ('#nngTTDataProjects').change(adminTabs.TTData.project).keyup(adminTabs.TTData.project);
            }, customer :
            function () {
                var options = '';
                var cid = scriptJQ('#nngTTDataCustomers option:selected').attr('value');
                console.log('cid:'+cid);
                for(var k in ttData.customers[cid].projects) {
                    var p = ttData.customers[cid].projects[k];
                    if (ttData.projects['p'+p].active==="true") {
                        options += '<option value="'+p+'">'+ttData.projects['p'+p].name+'</options>';
                    }
                }
                scriptJQ('#nngTTDataProjects').html(options);
                scriptJQ('#nngTTDataCustomerActive').html((ttData.customers[cid].active==="true"?'Active':'Inactive'));
                adminTabs.TTData.project();
            }, project :
            function () {
                scriptJQ('#ttDataTaskList').html('');
                scriptJQ('#ttDataTaskCount').html('0');
                var count = 0;
                var pid = 'p'+scriptJQ('#nngTTDataProjects option:selected').attr('value');
                var html='';
                for(var k in ttData.projects[pid].tasks) {
                    var t = ttData.projects[pid].tasks[k];
                    if (ttData.tasks['t'+t].active==="true") {
                        count++;
                        html += '<tr><td>'+t+'</td><td>'+ttData.tasks['t'+t].name+'</td><td>'
                            +(ttData.tasks['t'+t].active==="true"?'Active':'Inactive')+'</td></tr>';
                    }
                }
                scriptJQ('#ttDataTaskCount').html(''+count+'/'+ttData.projects[pid].activeTasks);
                if (count>0) {
                    scriptJQ('#ttDataTaskList').html('<table>'+html+'</table>');
                }
                scriptJQ('#nngTTDataProjectActive').html((ttData.projects[pid].active==="true"?'Active':'Inactive'));
            }, refresh :
            function (init) {
                if (init) {
                    readTTData(function (data) {
                        scriptJQ('#ttDataTaskList').html('');
                        scriptJQ('#ttDataTaskCount').html('0');
                        scriptJQ('#nngTTDataProjects').html('');
                        var options = '';
                        for(var i in data.cidList) {
                            var k = data.cidList[i];
                            if (data.customers[k].active==="true") {
                                options += '<option value="'+k+'">'+data.customers[k].name+'</options>';
                            }
                        }
                        scriptJQ('#nngTTDataCustomers').html(options);
                        adminTabs.TTData.customer();
                    });
                }
            }
        },
    'Changelog' : {key: TAB_CHANGELOG, show: 'all', name:  'Changelog', pic : 'ktip', init :
            function () {
                scriptJQ('#nngAdminDiv-'+TAB_CHANGELOG).html( '<div id="nngChangeLog">Refresh from internet</div>');
            }, refresh :
            function (init) {
                            if (init)  {
                readVersion(function (v) {
                    var html = "";
                                        var lastFirefoxVersion = null;
                                        var accordionCount = 0;
                                        var count = 0;
//                                        GM_deleteValue('versionPopup');
                    for(var key in v.changeLog) {
                                            var cl = v.changeLog[key];
                        html += '<h3><a href="javascript:void()">'+key+' ('+cl.date+')</a></h3><div><ul>';
                                                if (!isChrome && cl.firefox) {
                                                    html += '<a href="'+v.base+cl.firefox+'" '+
                                                        (!isChrome && isNewerVersion(parseVersion(GM_getValue('versionPopup',VERSION_STR)), parseVersion(key))
                                                        ? 'style="color:red; font-weight:bold;"' : '')
                                                        +'>Version: '+key+'</a><br/>';
                                                }
                        for(var l in cl.lines) {
                            html += '<li>'+cl.lines[l].li+'</li>';
                            if (cl.lines[l].p != undefined) {
                                html += '<p align="justify">'+cl.lines[l].p+'</p>';
                            }
                        }
                        html += '</ul></div>';
                                                if (!isChrome && lastFirefoxVersion == null && cl.firefox != undefined) {
                                                     lastFirefoxVersion  = key;
                                                     accordionCount = count;
                                                }
                                                count ++;
                    }
                    scriptJQ( "#nngChangeLog" ).accordion("destroy");
                    scriptJQ( "#nngChangeLog" ).html(html);
                    scriptJQ( "#nngChangeLog" ).accordion({
                        event: "mouseover",
                        autoHeight: false
                    });
                                        if (!isChrome) {
                                            if (isNewerVersion(parseVersion(GM_getValue('versionPopup',VERSION_STR)), parseVersion(lastFirefoxVersion))) {
                                                GM_setValue('versionPopup',lastFirefoxVersion);
                                                scriptJQ( "#nngChangeLog" ).accordion("",accordionCount);
                                                showAdminTab(TAB_CHANGELOG);
                                            }
                                            if (isNewerVersion(VERSION, parseVersion(lastFirefoxVersion))) {
                                                scriptJQ( "#nngTrackedVersion").css('color','red').css('font-weight','bold');
                                            }
                                        }
                });
                            }
            }
        },
    'About' : {key: TAB_ABOUT, show: 'all', name:  'About', pic : 'tv', init :
            function () {
                scriptJQ('#nngAdminDiv-'+TAB_ABOUT).html( '<table align="center"><tr><td align="center" valign="top">'
                +'<h2>Mantis Time Tracker</h2>'
                +'<p align="justify">Egy böngésző plugin (jelenleg Firefox és chrome '
                +'változatban) amely segít összekötni a Time Tracker és Mantis '
                +'rendszereket, nyilvántartani a Time Tracker számára az aktuális '
                +'feladatokat, valamint exportálja adatait ebbe a rendszerbe.</p>'
                +'</td><td width="300"><table align="center">'
                +'<tr><th>Alap ötlet</th><td><a href="mailto:jszabo@navngo.com">Jenoe</a></td></tr>'
                +'<tr><th>Code</th><td><a href="mailto:isvorcz@navngo.com">Svo</a></td></tr>'
                +'<tr><th>Design</th><td><a href="mailto:jszabo@navngo.com">Jenoe</a>, <a href="mailto:isvorcz@navngo.com">Svo</a>, JQuery UI</td></tr>'
                +'<tr><th>Ötletek</th><td><a href="mailto:ppusztai@navngo.com">Pusztai Petya</a></td></tr>'
                +'<tr><th>Leírás</th><td><a href="https://docs.google.com/document/d/1Fj5RLpiwKRFFM_3e666MUEllMgBUZkEev72P-dPWR3g/edit?hl=hu" target="_new">Google Doc</a></td></tr>'
                +'</table>'
                +'</td></tr></table>');
                scriptJQ( "#nngChangeLog" ).accordion({
                    event: "mouseover",
                    autoHeight: false
                });
            }, refresh :
            function () {
            }
        }
}

function setValue(key, value) {
    GM_setValue(key, value);
}

function getValue(key, def) {
    return GM_getValue(key, def);
}

function  getProjectName(pid) {
    var result = pid +': Undefined';
    try {
        var p = ttData.projects[(typeof pid == "string" && pid.indexOf('p')==0)?pid:('p'+pid)];
        if (p) {
            var c = ttData.customers['c'+p.customer];
            result = (c?c.name:'-Unknown-')+': '+p.name;
        }
    } catch (e) {
    }
    return result;
}

function readVersion(callBack) {
    GM_log('readVersion');
    VERSION_JSON  =  eval('('+getValue(KEY_VERSION,'{"base" : "https://nnghelper.googlecode.com/svn/", changeLog: [], write:1}')+')');
    if (isChrome) {
        callBack(VERSION_JSON);
        chrome.extension.sendRequest({action:"getVersion"}, function (v) {
            VERSION_JSON = eval('('+v+')');
            callBack(VERSION_JSON);
        });
    } else {
        callBack(VERSION_JSON);
        if (refresh(VERSION_JSON, 1800)) {
            GM_xmlhttpRequest({method: 'GET',
                 url: 'http://nnghelper.googlecode.com/svn/trunk/version.json?time='+(new Date()).getTime(),
                 headers: {'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
                          'Accept': 'application/json'
                 },
                 onload: function(responseDetails) {
                    var data = responseDetails.responseText;
                    GM_log('readVersion.onLoad');
                    VERSION_JSON = eval('('+data+')');
                    GM_setValue(KEY_VERSION, data);
                    VERSION_JSON.write = (new Date()).getTime()
                    callBack(VERSION_JSON);
                 },
                 onerror: function(responseDetails) {
                    GM_log(scriptJQ.toJSON(responseDetails));
                 }
            });
        } else {
            GM_log('hold fire');
        }
    };
    return VERSION_JSON;
}

function refresh(o, sec) {
    var now = (new Date()).getTime();
    if (!sec) {sec = 0;}
    return o && o.write && ((sec*1000)< (now-o.write));
}

var ttData;
function readTTData(callBack) {
    if (!callBack || callBack == undefined) {
        callBack =function(ttData){
        };
    }

    ttData =  eval('('+getValue(KEY_TTDATA,'{customers:{}, projects:{}, tasks:{}, activeProjects:[], cidList:[], write:1}')+')');
    if (isChrome) {
        callBack(ttData);
        chrome.extension.sendRequest({action:"getTTData"}, function (v) {
            ttData = eval('('+v+')');
            callBack(ttData);
            localStorage.setItem(KEY_TTDATA, v);
        });
    } else {
        callBack(ttData);
        if (refresh(ttData, 1800)) {
            getTTData(callBack);
        }
    };
    return ttData;
}

function getTTData() {
    scriptJQ.ajax({
        type: 'POST',
        url: 'https://app.nng.com/timetracker/timetrackerservice.asmx',
        contentType: 'text/xml; charset="utf-8"',
        dataType: "xml",
        data : '<?xml version="1.0" encoding="utf-8"?>'
        +'<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">'
            +'<soap12:Body>'
                +'<GetTaskInfoDataTable xmlns="http://app.nng.com/TimeTracker/" />'
            +'</soap12:Body>'
            +'</soap12:Envelope>',
        error:function( jqXHR, b, c ) {
            if (jqXHR.status === 0) {
                GM_log('Not connect.\n Verify Network.');
            } else if (jqXHR.status == 404) {
                GM_log('Requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                GM_log('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                GM_log('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                GM_log('Time out error.');
            } else if (exception === 'abort') {
                GM_log('Ajax request aborted.');
            } else {
                GM_log('Uncaught Error.\n' + jqXHR.responseText);
            }
            GM_log('getProjects error:'+a+','+b+','+c);
        },
        success: function( data ) {
            var tt = {customers:{}, projects:{}, tasks:{}, activeProjects:[], cidList:[], write:1};
            var pcount = 0;
            var tcount = 0;
            scriptJQ(data).find('DocumentElement TaskInfo').each(function () {
                var cid = scriptJQ(this).find('CustomerID').text();
                var pid = scriptJQ(this).find('ProjectID').text();
                var tid = scriptJQ(this).find('TaskID').text();
                if (tt.customers['c'+cid] == undefined) {
                    tt.customers['c'+cid] =
                    {
                        id : cid,
                        name : scriptJQ(this).find('CustomerName').text(),
                        active: scriptJQ(this).find('IsCustomerActive').text(),
                        projects : []
                    };
                }
                if (tt.projects['p'+pid] == undefined) {
                    tt.projects['p'+pid] =
                    {
                        id : pid,
                        name: scriptJQ(this).find('ProjectName').text(),
                        active: scriptJQ(this).find('IsProjectActive').text(),
                        tasks: [],
                        customer: cid,
                        activeTasks: 0
                    }
                    pcount++;
                }
                if (tid!=0) {
                    tt.tasks['t'+tid] = {
                        id : tid,
                        name : scriptJQ(this).find('TaskName').text(),
                        active: scriptJQ(this).find('IsTaskActive').text(),
                        project: pid
                    }
                    tt.projects['p'+pid].tasks.push(tid);
                    tcount++;
                    if (scriptJQ(this).find('IsTaskActive').text()==="true") {
                        tt.projects['p'+pid].activeTasks++;
                    }
                } else {
                    tt.customers['c'+cid].projects.push(pid);
                }
            });
            tt.write = (new Date()).getTime();
            setValue('ttData',scriptJQ.toJSON(sortTT(tt)));
        }
    })
}

function sortTT(tt) {
    for(var k in tt.customers) {
        tt.cidList.push(k);
    }
    tt.cidList.sort(function(a,b) {
        var ap = tt.customers[a];
        var bp = tt.customers[b];
        return ap.name == bp.name ?
            (ap.id == bp.id ? 0 : ap.id > bp.id ? -1 : 1)
         : ap.name < bp.name ? -1 : 1  ;
    });
    for(var k in tt.customers) {
        tt.customers[k].projects.sort(function(a,b) {
            var ap = tt.projects['p'+a];
            var bp = tt.projects['p'+b];
            return ap.name == bp.name ?
                (ap.id == bp.id ? 0 : ap.id > bp.id ? -1 : 1)
             : ap.name < bp.name ? -1 : 1  ;
        });
    }
    for(var k in tt.projects) {
        var p = tt.projects[k];
        if (p.active==="true"
            &&tt.customers['c'+p.customer]
            &&tt.customers['c'+p.customer].active==="true") {
            tt.activeProjects.push(k);
        }
    }
    tt.activeProjects.sort(function(a,b) {
        var ap = tt.projects[a];
        var bp = tt.projects[b];
        var an = getProjectName(a, tt).toUpperCase();
        var bn = getProjectName(b, tt).toUpperCase();
        return an == bn ?
            (ap.id == bp.id ? 0 : ap.id > bp.id ? -1 : 1)
         : an < bn ? -1 : 1  ;
    });
    for(var k in tt.projects) {
        tt.projects[k].tasks.sort(function(a,b) {
            var ap = tt.tasks['t'+a];
            var bp = tt.tasks['t'+b];
            return ap.name == bp.name ?
                (ap.id == bp.id ? 0 : ap.id > bp.id ? -1 : 1)
             : ap.name < bp.name ? -1 : 1  ;
        });
    }
    GM_log('ttData:'+scriptJQ.toJSON(tt.cidList));
    return tt;
}

function readTracked() {
    var t = eval('('+getValue(KEY_TRACKED,'[]')+')');
    var saveIt = false;
    for(var k in t) {
        if (t[k].id == undefined) {
            if (t[k] > 0) {
                t[k] = {id:t[k], type:TYPE_MANTIS};
            } else if (t[k] < 0) {
                t[k] = {id:t[k]*-1, type:TYPE_PROJECT};
            }
        }
    }
    if (saveIt) {
        setValue(KEY_TRACKED,scriptJQ.toJSON(t));
    }
    return t;
}

function writeTracked(tracked) {
    GM_log('writeTracked:'+scriptJQ.toJSON(tracked));
    setValue(KEY_TRACKED,scriptJQ.toJSON(tracked));
}

function readActiveMantis() {
    var m
    try {
        m = eval('('+getValue(KEY_ACTIVE_MANTIS,'{id:0}')+')');
    } catch(e) {
        GM_log('readActiveMantis('+getValue(KEY_ACTIVE_MANTIS,'{id:0}')+')');
        m = {id:0, type:TYPE_MANTIS};
    }
    if (m.id != 0 && m.type == undefined) {
        if (m.id > 0) {
            m.type = TYPE_MANTIS;
        } else {
            m.id = m.id*-1;
            m.type = TYPE_PROJECT;
        }
        setValue(KEY_ACTIVE_MANTIS,scriptJQ.toJSON(m));
    } else if (m.id <0) {
        m.id = m.id*-1;
        m.type = TYPE_PROJECT;
        setValue(KEY_ACTIVE_MANTIS,scriptJQ.toJSON(m));
    }
    return m;
}

function writeActiveMantis(mantis) {
    GM_log('writeActiveMantis:'+scriptJQ.toJSON(mantis));
    updateTracked(mantis)
    setValue(KEY_ACTIVE_MANTIS,scriptJQ.toJSON(mantis));
}

function updateTracked(mantis) {
    if (mantis.id != 0) {
        if (isChrome) {
            chrome.extension.sendRequest({action:"tracked",param:mantis}, function (m) {
                localStorage.setItem(KEY_TRACKED,scriptJQ.toJSON(m));
            });
        } else {
            var tracked = readTracked();
            var newTracked = [{id:mantis.id,type:mantis.type}];
            for(var k in tracked) {
                if (tracked[k].id != mantis.id ||
                    tracked[k].type != mantis.type) {
                    newTracked.push(tracked[k]);
                }
            }
            writeTracked(newTracked);
        }
    }
}



function readOptions() {
    var ops =  eval('('+getValue(KEY_OPTIONS,'{}')+')');
    if (ops.projects == undefined) {
        ops.projects = ops.prods;
    }
    for(o in optionsDefault) {
        if (ops[o]==null) {
            ops[o] = optionsDefault[o];
        }
    }
    options = ops;
}

function writeOptions(options) {
    delete options.prods;
    GM_log('writeOptions:'+scriptJQ.toJSON(options));
    setValue(KEY_OPTIONS,scriptJQ.toJSON(options));
}

function readMantis(m) {
//  GM_log('readMantis:'+scriptJQ.toJSON(m));
    var result = {};
    if (m.type==TYPE_PROJECT) {
        result = {id:m.id, type:m.type, project:m.id, task:0, fake:1}
    } else if (m.type==TYPE_TASK) {
        try {
            var t = ttData.tasks['t'+m.id];
            GM_log('readMantis task:'+m.id+','+scriptJQ.toJSON(t));
            pid = t.project;
            result = {id:m.id, type:m.type, project:t.project, task:m.id, fake:1}
        } catch (e) {
            result = {id:m.id, type:m.type, project:0, task:m.id, fake:1}
        }
    } else {
        result = eval('('+getValue(m.type+m.id, '{id:'+m.id+', project:0, task:0, fake:1}')+')');
        result.type = m.type;
    }
//  GM_log('readMantis:'+scriptJQ.toJSON(result));
    return result;
}

function writeMantis(m) {
    GM_log('writeMantis:'+scriptJQ.toJSON(m));
    delete m.fake;
    setValue(m.type+m.id,scriptJQ.toJSON(m));
}

function  getPic(name) {
    if (isChrome) {
        return chrome.extension.getURL("icons/buuf/"+name+".png");
        console.log(chrome.extension.getURL("icons/buuf/"+name+".png"));
    } else {
        var result = nopic;
        try {
            result = pics.buuf[name];
        } catch ( e1 ) {
        };
    }
    return result;
}

function padd(number) {
    var s = '00'+number;
    return s.substr(s.length-2,2);
}

function  date2myTime(date) {
    var result = {};
    result.date = date.getFullYear()+'-'+padd(date.getMonth()+1)+'-'+padd(date.getDate());
    result.time = padd(date.getHours())+':'+padd(date.getMinutes());
    return result;
}

function readDay(day) {
    GM_log('readDay:'+day+':'+getValue('day'+day));
    var result = eval('('+getValue('day'+day, '{day:"'+day+'", minutes:0, state:"" , rows:[]}')+')');
    if (result.day != day || result.rows == undefined) {
        result = {'day':day, 'minutes':0, 'state':'', rows:[]};
    }
    var saveIt = false;
    for(var k in result.rows) {
        var m = result.rows[k];
        if (m.id != 0 && m.type == undefined) {
            if (m.id > 0) {
                m.type = TYPE_MANTIS;
            } else {
                m.id = m.id*-1;
                m.type = TYPE_PROJECT;
            }
            saveIt = true;
        }
    }

    if (saveIt) {
        setValue('day'+result.day, scriptJQ.toJSON(result));
    }

    return result;
}

function writeDay(data) {
    GM_log('writeDay:'+scriptJQ.toJSON(data));
    setValue('day'+data.day, scriptJQ.toJSON(data));
}


function track(mantis) {
    var row = {};
    row.id = mantis.id;
    row.type = mantis.type;
    row.start = mantis.start;
    row.end = date2myTime(new Date());
    if (row.end.date == row.start.date) {
        var day = readDay(row.start.date);
        row.start = row.start.time;
        row.end = row.end.time;
        day.rows.push(row);
        writeDay(day)
    } else {
        var splitted = splitProblematic(row);
        for (var key in splitted) {
            if (splitted[key].state == undefined) {
                var day = readDay(splitted[key].day);
                day.rows.push({id:mantis.id, type:mantis.type, day: splitted[key].day, start: splitted[key].start, end: splitted[key].end});
                writeDay(day);
            }
        }
    }
}

function showAdminTab(tab) {
    for (var key in adminTabs ) {
        if (tab==adminTabs[key].key) {
            adminTabs[key].refresh();
            GM_log('showAdminTab: '+tab+','+adminTabs[key].count);
            siteJQ('#nngAdminDiv').tabs('select', adminTabs[key].count);
            scriptJQ('#nngWindows').show();
        }
    }
}

function myTime(value) {
    var result = {};
    if(!TIME_PATTERN.test(value)) {
        result.status = 1; // WRONG FORMAT
    } else {
        var m = TIME_PATTERN.exec(value);
        result.hour = m[1]*1;
        result.minute = m[2]*1;
        result.sum = result.hour*60 + result.minute;
        result.formatted = padd(result.hour)+":"+padd(result.minute);
        if (result.hour < 0) {
            result.status = 2; // LESS HOUR
        } else if(result.hour>23) {
            result.status = 3; // MORE HOUR
        } else if (result.minute < 0) {
            result.status = 4; // LESS MIN
        } else if(result.minute>59) {
            result.status = 5; // MORE MIN
        } else {
            result.status = 0; // OK
        }
    }
    return result;
}

function sameTrack(t1, t2) {
    return t1.id==t2.id && t1.type==t2.type;
}

function refreshDay(d) {
    var result = readDay(d);
    if (result.rows.length == 0) {
        result.minutes = 0;
    } else {
        result.minutes = 0;
        if ( result.rows.length > 1) {
            result.rows.sort(function(a,b) {
                return a.start == b.start ?
                    (a.end == b.end ?
                      (a.type == b.type ?
                        (a.id == b.id ? 0 : a.id < b.id ? -1 : 1)
                        : a.type < b.type ? -1 : 1)
                     : a.end < b.end ? -1 : 1)
                  : a.start < b.start ? -1 : 1;
            })
            var log = 'Changed:';
            var origRows = result.rows;
            var newRows = [];
            var changed = false;
            console.log('pukk')
            for(var i in origRows) {
                if (i>0) {
                    var last = newRows[newRows.length - 1];
                    var act = origRows[i];
                    var actStart = myTime(act.start);
                    var actEnd = myTime(act.end);
                    if (sameTrack(last, act)) {
                        var lastEnd = myTime(last.end);
                        if (lastEnd.sum >= actStart.sum ) {
                            last.end = lastEnd.formatted < actEnd.formatted ? act.end : last.end;
                            log += act.id +':'+act.type +':'+act.start +' : '+last.end+'<br/>';
                            changed = true;
                        }
                    } else if (actEnd.formatted == actStart.formatted) {
                        newRows.push(act);
                    } else {
                        newRows.push(act);
                    }
                } else {
                    newRows.push(origRows[i]);
                }
            }
            console.log('pukk2')
            result.rows = newRows;
        }
        for(var key in result.rows) {
            var m = result.rows[key];
            var start = myTime(m.start);
            var end = myTime(m.end);
            if (start.status != 0 || end.status != 0) {
                m.length = -1;
            } else {
                m.length = end.sum - start.sum + 1;
                m.start = start.formatted;
                m.end = end.formatted;
                result.minutes += m.length;
            }
        }
    }
    GM_log('refreshDay:'+scriptJQ.toJSON(result));
    writeDay(result);
    return result;
}

/* - days 'day2011-07-01' : '{day:'2011-07-01', minutes:480, state:'partial|closed|inited' ,
 *  rows:[{id:0, type:'ma|cr|tt' state:'inited|failed', project:0, start:'09:30', end:'12:30', length: 180},
 *  {id:0, state:'failed', project:0, start:'12:30', end:'17:30', length: 300}] }'
*/
function recalcLength(r) {
    var start = myTime(r.start);
    var end = myTime(r.end);
    if (start.status != 0 || end.status != 0) {
        r.length = -1;
    } else {
        r.length = end.sum - start.sum + 1;
        r.start = start.formatted;
        r.end = end.formatted;
    }
    return r;
}

function trackKey(t) {
    return t.type+'-'+t.id+'-'+(t.start.time == undefined ? t.start : t.start.time);
}

function trackId(t) {
    return t.type+':'+t.id;
}

function editDay() {
    day = refreshDay(scriptJQ('#nngEditDay').attr('value'));
    if (typeof ( day.rows ) != 'object' || day.rows.length == 0) {
        scriptJQ('#nngEditDayDiv').html('Empty day');
    } else {
        var html = '<table>'
            + '<tr><th>Sum time</th><td>'+day.minutes+'</td>'
//          + '<th>Status</th><td>'+day.state+'</td>'
            + '</tr></table>';
            html += '<span id="nngEditDayTask">'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskDelete" /><label for="nngEditDayTaskDelete">Delete</label>'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskSplit" disabled="disabled"/><label for="nngEditDayTaskSplit">Split</label>'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskMergePrev" disabled="disabled"/><label for="nngEditDayTaskMergePrev">Merge Prev</label>'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskMergeNext" disabled="disabled"/><label for="nngEditDayTaskMergeNext">Merge Next</label>'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskFillEmpty" disabled="disabled"/><label for="nngEditDayTaskFillEmpty">Fill Empty</label>'
            + '<input type="radio" name="dayTask" id="nngEditDayTaskSave" disabled="disabled"/><label for="nngEditDayTaskSave">Save</label>'
            + '</span>';
        html += '<table id="editDayTable"><tr><th></th><th>Start</th><th>End</th><th>Length</th><th>Mantis</th><th>Project</th></tr><thead></table>';
        scriptJQ('#nngEditDayDiv').html(html);
        scriptJQ('#nngEditDayTask').buttonset();
        fillEditDayTable(day);
            scriptJQ('#nngEditDayTaskSave').click(function () {
                delete day.needSave;
                writeDay(day);
                day = refreshDay(day.day);
                fillEditDayTable(day);
            });
            scriptJQ('#nngEditDayTaskMergePrev').click(function () {
                var value = scriptJQ('#editDayTable input[name=row]:checked').attr('value');
                var newRows = [];
                var last = null;
                for(var row in day.rows) {
                    if (value == trackKey(day.rows[row])) {
                        if (last!=null) {
                            newRows.push(recalcLength({id:day.rows[row].id, type:day.rows[row].type, start:last.start, end:day.rows[row].end}));
                            last = null;
                            continue;
                        }
                    } else if (last!=null){
                        newRows.push(last);
                    }
                    last = day.rows[row];
                }
                if (last!=null) {
                    newRows.push(last);
                }
                day.rows = newRows;
                day.needSave = true;
                fillEditDayTable(day);
            });
            scriptJQ('#nngEditDayTaskMergeNext').click(function () {
                var value = scriptJQ('#editDayTable input[name=row]:checked').attr('value');
                GM_log('nngEditDayTaskMergePrev start:'+value);
                var newRows = [];
                var last = null;
                for(var row in day.rows) {
                    if (value == trackKey(day.rows[row])) {
                        last = day.rows[row];
                    } else if (last!=null){
                        newRows.push(recalcLength({id:last.id, type:last.type, start:last.start, end:day.rows[row].end}));
                        last = null;
                    } else  {
                        newRows.push(day.rows[row]);
                    }
                }
                if (last!=null) {
                    newRows.push(last);
                }
                day.rows = newRows;
                day.needSave = true;
                fillEditDayTable(day)
            });
            scriptJQ('#nngEditDayTaskSplit').click(function () {
                var value = scriptJQ('#editDayTable input[name=row]:checked').attr('value');
                var newRows = [];
                for(var row in day.rows) {
                    GM_log('nngEditDayTaskSplit:'+value+','+day.rows[row].length);
                    if ((value == trackKey(day.rows[row])) && (day.rows[row].length>1)) {

                        var start = myTime(day.rows[row].start);
                        var end = myTime(day.rows[row].end);

                        var mid = Math.floor((start.sum + end.sum) / 2);
                        var newEnd = padd(Math.floor(mid/60))+":"+padd(mid%60);
                        mid++;
                        var newStart = padd(Math.floor(mid/60))+":"+padd(mid%60);
                        newRows.push(recalcLength({id:day.rows[row].id, type:day.rows[row].type, start:day.rows[row].start, end:newEnd}));
                        newRows.push(recalcLength({id:day.rows[row].id, type:day.rows[row].type, start:newStart, end:day.rows[row].end}));
                    } else {
                        newRows.push(day.rows[row]);
                    }
                }
                day.rows = newRows;
                day.needSave = true;
                fillEditDayTable(day)
            });

            scriptJQ('#nngEditDayTaskFillEmpty').button('enable').click(function () {
                selectTracked(function (tracked) {
                    var newRows = [];
                    var lastEnd = null;
                    var workStart = myTime(options.workTime.start);
                    var workEnd = myTime(options.workTime.end);
                    for(var row in day.rows) {
                        var rowStart = myTime( day.rows[row].start);
                        var rowEnd = myTime( day.rows[row].end);
                        if (lastEnd == null) {
                            if (rowStart.sum > workStart.sum) {
                                newRows.push(recalcLength({id:tracked.id, type: tracked.type, start:options.workTime.start, end:day.rows[row].start}));
                            }
                        } else if (lastEnd.sum < rowStart.sum) {
                            newRows.push(recalcLength({id:tracked.id, type: tracked.type, start:lastEnd.formatted, end:rowStart.formatted}));
                        }
                        newRows.push(day.rows[row]);
                        lastEnd = rowEnd;
                    }
                    var end = options.workTime.end;
                    if (active.id != 0) {
                        var today = date2myTime(new Date()).date;
                        if (day.day == today) {
                            var activeStart = myTime(active.start.time);
                            if (workEnd.sum > activeStart.sum) {
                                end = activeStart.formatted;
                            }
                        }
                    }
                    if (lastEnd == null) {
                        newRows.push(recalcLength({id:tracked.id, type: tracked.type, start:options.workTime.start, end:end}));
                    } else if (lastEnd.sum < workEnd.sum) {
                        newRows.push(recalcLength({id:tracked.id, type: tracked.type, start:lastEnd.formatted, end:end}));
                    }
                    day.rows = newRows;
                    day.needSave = true;
                    fillEditDayTable(day)
                }, null, true);
            });
            scriptJQ('#nngEditDayTaskDelete').click(function () {
                var value = scriptJQ('#editDayTable input[name=row]:checked').attr('value');
                var newRows = [];
                for(var row in day.rows) {
                    if (value != trackKey(day.rows[row])) {
                        newRows.push(day.rows[row]);
                    }
                }
                day.rows = newRows;
                day.needSave = true;
                fillEditDayTable(day)
            });
    }
}

function fillEditDayTable(day, checked) {
    var html = "";
    var today = date2myTime(new Date()).date;
    GM_log('fillEditDayTable:'+scriptJQ.toJSON(day)+','+checked);
    day.rowsNumber = 0;
    for(var row in day.rows) {
        day.rowsNumber++;
        var info = trackInfo(day.rows[row]);
        var value = trackKey(day.rows[row]);
        html += '<tr><td><input type="radio" name="row" value="'+value+'" '
            +((checked && checked == value) || (!checked && row==0)?' checked="checked"':'')
            +'row="'+row+'" />'
            +'</td><td>'+day.rows[row].start
            +'</td><td>'+day.rows[row].end
            +'</td><td>'+day.rows[row].length;
        if (info.type == TYPE_PROJECT) {
            html += '</td><td colspan="2" align="center" ><span<span class="mantis" row="'+row+'">'
            + info.projectNameFormatted +"</span>"
        } else {
            html +='</td><td><span class="active">' + info.trackedNameFormatted
            +'</span></td><td><span class="project" mantis="'+trackId(info)+'">'
            + info.projectNameFormatted +"</span>"
        }
        html +='</td></tr>';
    }
    if ((day.day == today) && (active.id != 0)) {
        var id = active.id;
        var info = trackInfo(active);
        var value = trackKey(active);
        html += '<tr><td></td><td>'+active.start.time
            +'</td><td>--'
            +'</td><td>--';
        if (info.type == TYPE_PROJECT) {
            html += '</td><td colspan="2" align="center" ><span class="active">'
            + info.projectNameFormatted +"</span>"
        } else {
            html +='</td><td><span class="active">' + info.trackedNameFormatted
            +'</span></td><td><span class="project" mantis="'+trackId(info)+'">'
            + info.projectNameFormatted +"</span>"
        }
        html +='</td></tr>';
    }
    scriptJQ('#editDayTable tbody').html(html);
    scriptJQ('#editDayTable span.active').button().button("disable");
    scriptJQ('#editDayTable span.project').button().click(selectProject);
    scriptJQ('#editDayTable span.mantis').button().click(function () {
        var row = scriptJQ(this).attr('row');
        selectTracked(function (id) {
            day.rows[row].id = id;
            day.needSave = true;
            fillEditDayTable(day);
        }, day.rows[row].id, true);
    });
    scriptJQ('#nngEditDayTaskSplit').button(day.rowsNumber>1?"enable":"disable");
    scriptJQ('#nngEditDayTaskChange').button(day.rowsNumber>1?"enable":"disable");
    scriptJQ('#nngEditDayTaskSave').button(day.needSave?"enable":"disable");
    scriptJQ('#editDayTable input[name=row]:checked').each(function () {
        var r = scriptJQ(this).attr('row');
        scriptJQ('#nngEditDayTaskMergePrev').button(r==0?"disable":"enable");
        scriptJQ('#nngEditDayTaskMergeNext').button(r>=(day.rowsNumber-1)?"disable":"enable");
        scriptJQ('#nngEditDayTaskSplit').button(day.rows[r].length<2?"disable":"enable");
    });
    scriptJQ('#editDayTable input[name=row]').change(function () {
        var r = scriptJQ(this).attr('row');
        scriptJQ('#nngEditDayTaskMergePrev').button(r==0?"disable":"enable");
        scriptJQ('#nngEditDayTaskMergeNext').button(r>=(day.rowsNumber-1)?"disable":"enable");
        scriptJQ('#nngEditDayTaskSplit').button(day.rows[r].length<2?"disable":"enable");
    });
}

function trackInfo(track) {
    var result = {id: track.id, type: track.type};
    var pid = 0;
    if (track.type==TYPE_PROJECT) {
        pid = track.id;
        result.trackedNameFormatted = result.trackedName = '--';
    } else if (track.type==TYPE_TASK) {
        try {
            var t = ttData.tasks['t'+track.id];
            pid = t.project;
            result.trackedName = 'Task: '+pid+'/'+track.id +': '+ getProjectName(pid) +' / '+t.name;
        } catch (e) {
            result.trackedName = 'Task: '+track.id+': Unknown';
        }
    } else if (track.type==TYPE_MANTIS) {
        var m = readMantis(track);
        pid = m.project;
        result.trackedName = 'Mantis: ' + (m.name
            ? m.name : track.id + ' : Unknown');
    } else if (track.type==TYPE_CODEREVIEW) {
        var m = readMantis(track);
        pid = m.project;
        result.trackedName = 'CodeReview: ' +track.id +': '+ (m.name
            ? m.name : track.id + ' : Unknown');
    } else {
        result.trackedNameFormatted = result.trackedName = 'Unknown type:'+track.type;
        GM_log(result.trackedName);
    }
    result.projectName =  'Project: ' + pid +': '+ getProjectName(pid);
    result.projectNameFormatted = result.projectName.replace('Unknown','<u>Unknown</u>')
    result.trackedNameFormatted = result.trackedName.replace('Unknown','<u>Unknown</u>')
    if (track.type==TYPE_PROJECT) {
        result.trackedNameFormatted = result.projectNameFormatted;
        result.trackedName = result.projectName;
    }
    return result
}

function floatingMessage(str, adminOnly, p) {
    if (!adminOnly || options.adminMessages ) {
        p = p == undefined ? {time: 5000} : p;
        if (p.time == undefined) {
            p.time = 5000;
        }
        siteJQ.floatingMessage( str, p);
    }
}

function selectProject() {
    floatingMessage('selectProject:'+scriptJQ(this).attr('mantis'), true);
    var s = scriptJQ(this).attr('mantis').split(':');
    var mantis = readMantis({id:s[1],type:s[0]});
    if (!mantis.fake) {
        if (mantis.type == TYPE_MANTIS) {
            selectTracked(function (tracked, name) {
                var info = trackInfo(tracked);
                var project = {id: tracked.id, task:0, name:info.trackedName};
                if (tracked.type == TYPE_TASK) {
                    project.id = ttData.tasks['t'+tracked.id].project;
                    project.task = tracked.id;
                }
                mantis.project = project.id;
                mantis.task = project.task;
                writeMantis(mantis);
                postMantisProject({mid:mantis.id, pid:project.id, pname: project.name});
                scriptJQ('span.project[mantis="'+trackId(mantis)+'"] span').text(project.name);
                scriptJQ('#nngTimeTrackerProject span').text(project.name);
            }, mantis.project, false);
        } else if (mantis.type == TYPE_CODEREVIEW) {
            selectTracked(function (tracked, name) {
                var info = trackInfo(tracked);
                var project = {id: tracked.id, task:0, name:info.trackedName};
                if (tracked.type == TYPE_TASK) {
                    project.id = ttData.tasks['t'+tracked.id].project;
                    project.task = tracked.id;
                }
                mantis.project = project.id;
                mantis.task = project.task;
                writeMantis(mantis);

                var parts = scriptJQ('#description').text().split("\n");
                var l = -1;
                for(var k in parts) {
                    if (scriptJQ.trim(parts[k]) != '') {
                        l = k;
                    }
                }
                if ((l >= 0) && (/\s*(\d+)(\/\d+)\s*:(.*\w)\s*/.exec(parts[l]))) {
                    parts[l] = project.name;
                } else {
                    parts.push(project.name);
                }
                var newDesc = '';
                for(var k in parts) {
                    newDesc += '\n'+parts[k];
                }
                if (newDesc != '') {
                    newDesc = newDesc.substr(1);
                }
                scriptJQ('#description').text(newDesc);
                postCRProject({mid:mantis.id, pid:project.id, data: newDesc});
                scriptJQ('span.project[mantis="'+trackId(mantis)+'"] span').text(project.name);
                scriptJQ('#nngTimeTrackerProject span').text(project.name);
            }, mantis.project, false);
        }
    }
}

function selectTracked(callback, defaultProject, needTracked) {
    GM_log('selectTracked');
    if (callback == null) {
        floatingMessage(
          '<strong>Bad parameter</strong><br/>No callback and not a project button', true);
        return;
    }
    if (defaultProject == null || defaultProject == undefined || defaultProject == 0) {
        defaultProject = options.defProject;
    }
    var html = '<table id="nngTrackedTable">'
    +'<tr><td><input id="nngTrackableInput" name="nngTrackableInput" style="width:500px"/><button type="button" id="nngTrackableButton">&nbsp;</button></td></tr>'
    +'</table><table id="nngTrackedTaskTable" style="display:none">'
    +'<tr><td><span id="nngTrackedLabel"></span></td></tr>'
    +'<tr><td><input id="nngTrackableTask" name="nngTrackableTask" style="width:500px"/></td></tr>'
    +'</table>';
    siteJQ('#nngPopup').html(html);
    var autosource = [];
    var sid = undefined;
    readOptions();
    var contains = {};
    for(var k in options.projects) {
        var key = 'p'+options.projects[k];
        var tk = {type:TYPE_PROJECT, id:options.projects[k]};
        var sid = trackId(tk);
        if (contains[sid] == undefined) {
            var info = trackInfo(tk);
            autosource.push({value:sid, label:info.trackedName});
            contains[sid] = info.trackedName;
        }
    }
    if (needTracked) {
        var tracked = readTracked();
        GM_log('tracked:'+scriptJQ.toJSON(tracked));
        autosource.push({value:0, label:'--- Earlier Tracked Manis/Project ---'});
        for(var k in tracked) {
            var sid = trackId(tracked[k]);
            GM_log('sid:'+sid+'|'+contains[sid]);
            if (contains[sid] == undefined) {
                var info = trackInfo(tracked[k])
                autosource.push({value:sid, label:info.trackedName});
                contains[sid] = info.trackedName;
            }
        }
    }
    autosource.push({value:0, label:'--- All Projects ---'});
    for(var i in ttData.activeProjects) {
        var key = ttData.activeProjects[i];
        var tk = {type:TYPE_PROJECT, id:key.substr(1)};
        var sid = trackId(tk);
        if (contains[sid] == undefined) {
            var info = trackInfo(tk);
            autosource.push({value:sid, label:info.trackedName});
            contains[sid] = info.trackedName;
        }
    }
    var input = scriptJQ('#nngTrackableInput');
    siteJQ( '#nngTrackableButton' )
    .attr( "tabIndex", -1 )
    .attr( "title", "Show All Items" )
    .button({
        icons: {
            primary: "ui-icon-triangle-1-s"
        },
        text: false
    })
    .removeClass( "ui-corner-all" )
    .addClass( "ui-corner-right ui-button-icon" )
    .click(function() {
        // close if already visible
        if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
            input.autocomplete( "close" );
            return;
        }

        // work around a bug (likely same cause as #5265)
        scriptJQ( this ).blur();

        // pass empty string as value to search for, displaying all results
        input.autocomplete( "search", "" );
        siteJQ('#nngTrackableInput').focus();
    });
    input.autocomplete({
        minLength: 0,
        source: function( request, response ) {
            if (request.term == "" || !request.term) {
                response( autosource);
                return;
            }
            var matcher = new RegExp( scriptJQ.ui.autocomplete.escapeRegex(request.term), "i" );

            var result = [];
            for (var key in autosource) {
                var s = autosource[key]
                if (s.value != 0 && ( !request.term || matcher.test(s.label) )) {
                    result.push(s);
                }
            }
            response( result );
            return;
        },
        focus: function( event, ui ) {
            scriptJQ( "#nngTrackableInput" ).val( ui.item.label );
            return false;
        },
        select: function( event, ui ) {
            sid = ui.item;
            if (sid.value != null) {
                var parts = sid.value.split(':');
                floatingMessage('<strong>SID : '+sid.value+'</strong>', true);
                var p = ttData.projects['p'+parts[1]];
                // TODO setup függő
                if (parts[0]=="tt" && p && p.activeTasks>=1) {
                    GM_log('selectedProject:'+ui.item)
                    scriptJQ('#nngTrackedTable').hide();
                    scriptJQ('#nngTrackedTaskTable').show();
                    var tasksource = [];
                    // TODO setup függő
                    tasksource.push({value:sid.value, label:"No task"});
                    for(var k in p.tasks) {
                        var tid = p.tasks[k];
                        if (ttData.tasks['t'+tid].active==="true") {
                            var key = 't'+tid;
                            var tk = {type:TYPE_TASK, id:tid};
                            var sid = trackId(tk);
                            var info = trackInfo(tk);
                            tasksource.push({value:sid, label:info.trackedName});
                        }
                    }
                    var info = trackInfo({id:p.id, type:TYPE_PROJECT});
                    scriptJQ('#nngTrackedLabel').html(info.trackedName.replace('Project','<b>Selected Project</b>'));
                    scriptJQ('#ui-dialog-title-nngPopup').html('Select Task');
                    scriptJQ('#nngTrackableTask').autocomplete({
                        minLength: 0,
                        source: tasksource,
                        focus: function( event, ui ) {
                            scriptJQ( "#nngTrackableTask" ).val( ui.item.label );
                            return false;
                        },
                        select: function( event, ui ) {
                            GM_log('selectedTask:'+ui.item)
                            sid = ui.item;
                            if (sid.value != null) {
                                siteJQ('#nngPopup').dialog( "close" );
                                var parts = sid.value.split(':');
                                floatingMessage('<strong>SID : '+sid.value+'</strong>', true);
                                callback({id:parts[1], type:parts[0]}, sid.label);
                                mantisHeader();
                                siteJQ('body').focus();
                            }
                            return false;
                        }
                    }).autocomplete( "search", "" );
                    siteJQ('#nngTrackableTask').focus();
                } else {
                    siteJQ('#nngPopup').dialog( "close" );
                    var id = {id:parts[1], type:parts[0]};
                    var name = sid.label;
                    if (parts[0]=="tt" && p && p.activeTasks>1) {
                        for(var i in p.tasks) {
                            if (ttData.tasks['t'+p.tasks[i]]==="true") {
                                id = {id:p.tasks[i], type:TYPE_TASK};
                                var info = trackInfo(id);
                                name = info.trackedName;
                                break;
                            }
                        }
                    }
                    callback(id, sid.label);
                    mantisHeader();
                    siteJQ('body').focus();
                }
            }
            return false;
        }
    });

    scriptJQ('#nngTrackedBox').button();
    scriptJQ('#nngSelectedBox').button();
    scriptJQ('#nngAllBox').button();
    scriptJQ('#nngPopup').attr('Title','Select Trackable');
    siteJQ('#nngTrackableInput').focus();
    siteJQ('#nngPopup').dialog({
        width: 600,
        modal: true,
        buttons: {
            /*
            Ok: function() {
                if (sid == undefined)  {
                    floatingMessage('<strong>SID : '+sid+'</strong>');
                } else {
                    if (sid.value != 0) {
                        scriptJQ( this ).dialog( "close" );
                        floatingMessage('<strong>SID : '+sid.value+'</strong>', true);
                        callback(sid.value, sid.label);
                        mantisHeader();
                    }
                }
            },
            */
            Cancel: function() {
                siteJQ( this ).dialog( "close" );
            }
        }
    });
}

function postMantisProject(param) {
    if (isChrome) {
            chrome.extension.sendRequest({action:"postMantisProject",param:param},function( data ) {
                        floatingMessage(data);
                    });
    } else {
        scriptJQ.ajax({
            type: 'POST',
            url: 'http://bugtracker.igomyway.com/bug_update_page.php',
            data: {bug_id: param.mid},
            success:      function( data ) {
                var token = scriptJQ( data ).find('input[name="bug_update_token"]' ).attr('value');
                scriptJQ.ajax({
                    type: 'POST',
                    url: 'http://bugtracker.igomyway.com/bug_update.php',
                    data: {bug_update_token: token,
                    bug_id : param.mid,
                    update_mode : 1,
                    custom_field_147: param.pname},
                    success:      function( data ) {
                        floatingMessage('Saved');
                    },
                    onerror:      function( data ) {
                        floatingMessage('Save failed');
                    },
                    dataType: 'html'
                });
            },
            onerror:      function( data ) {
                floatingMessage('Save failed');
            },
            dataType: 'html'
        });
    }
}

function postCRProject(param) {
    if (isChrome) {
            chrome.extension.sendRequest({action:"postCRProject",param:param}, function (data) {
                floatingMessage(data);
            });
    } else {
        scriptJQ.ajax({
            type: 'POST',
            url: 'http://codereview/api/review-requests/'+param.mid+'/draft/',
            data: {api_format:'json', description: param.data},
            success:      function( data ) {
                floatingMessage('Saved');
            },
            onerror:      function( data ) {
                floatingMessage('Save failed');
            },
            dataType: 'json'
        });
    }
}


function myDate(str) {
    var m = /(\d{4})-(\d{2})-(\d{2})/.exec(str);
    return new Date(m[1]*1,m[2]*1-1,m[3]*1);
}

function splitProblematic(prob) {
    GM_log('splitProblematic start:'+scriptJQ.toJSON(prob));

    var startDay = myDate(prob.start.date);
    var endDay = myDate(prob.end.date);
    var days = (endDay.getTime()-startDay.getTime())/(DAY);
//  GM_log('splitProblematic:'+days+','+(endDay.getTime()-startDay.getTime())+':'+(DAY));
    if (days < 1) {
        alert('Invalid intervall');
        return [];
    } else {
        result = [];
        readOptions();
        var wts = myTime(options.workTime.start);
        var wte = myTime(options.workTime.end);
        var startTime = myTime(prob.start.time);
        var endTime = myTime(prob.end.time);
        var day = startDay;
        if (startTime.sum<wte.sum) {
            var m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = prob.start.time;
            m.end = options.workTime.end;
            m.length = wte.sum-startTime.sum + 1;
            result.push(m);
            m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = options.workTime.end;
            m.end = '23:59';
            m.state = 'late';
            m.length = 1440 - wte.sum;
            result.push(m);
        } else {
            var m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = prob.start.time;
            m.end = '23:59';
            m.length = 1440 - startTime.sum;
            result.push(m);
        }

        day = new Date(day.getTime()+DAY);

        while(day.getTime() < endDay.getTime()) {
            var m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = '00:00';
            m.end = options.workTime.start;
            m.length = wts.sum;
            m.state = 'early';
            result.push(m);
            m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = options.workTime.start;
            m.end = options.workTime.end;
            m.length = wte.sum - wts.sum;
            result.push(m);
            m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = options.workTime.end;
            m.end = '23:59';
            m.length = 1440 - wte.sum;
            m.state = 'late';
            result.push(m);
            day = new Date(day.getTime()+DAY);
        }

        if (endTime.sum>wts.sum) {
            var m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = '00:00';
            m.end = options.workTime.start;
            m.length = wts.sum;
            m.state = 'early';
            result.push(m);
            m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = options.workTime.start;
            m.end = prob.end.time;
            m.length = endTime.sum-wts.sum;
            result.push(m);
        } else {
            var m = {};
            m.id = prob.id;
            m.day = day.getFullYear()+'-'+padd(day.getMonth()+1)+'-'+padd(day.getDate());
            m.start = '00:00';
            m.end = prob.end.time;
            m.length = endTime.sum;
            m.state = 'early';
            result.push(m);
        }
//      GM_log('splitted:'+scriptJQ.toJSON(result));
        return result;
    }
}

function  changeHeader(div) {
    GM_log('changeHeader');
    var a = scriptJQ('a',div);
    if (site == SITE_CR) div = scriptJQ('#headerbar');
    scriptJQ(div).append('<table border="0" style="padding:0px; border:0px; margin:0px;"'
    +' cellpadding="0" cellspacing="0"><tr><td id="nngHeaderPic" style="padding:0"></td'
    +'><td valign="top" style="padding:0" align="right">'
    +'<div id="nngMantisToolbar" class="ui-widget-header ui-corner-all" style="padding: 1px 1px;">'
    +'<img id="nngMantisTrackedImg" state="track" src="'+getPic('track')+'" style="float:left"/>'
    +'<span id="nngMantisAction">'
    +'  <input type="radio" id="trackStop" name="track"/><label for="trackStop">Stop</label>'
    +'  <input type="radio" id="trackMantis" name="track"/><label for="trackMantis">Track This</label>'
    +'  <input type="radio" id="trackProject" name="track"/><label for="trackProject">Track Other</label>'
    +'</span>'
    +'<span id="nngActions">'
    +'<input type="radio" id="nngSetup" ><label for="nngSetup">Setup</label>'
    +'<input type="radio" id="nngReport"><label for="nngReport">Report</label>'
    +'</span>'
    +'<span id="nngTrackedAdd">'
    +'<input type="radio" id="nngTrackedAdd10M"><label for="nngTrackedAdd10M">+10M</label>'
    +'<input type="radio" id="nngTrackedAdd1H"><label for="nngTrackedAdd1H">+1H</label>'
    +'</span>'
    +'<span id="nngTrackedVersion" title="'+VERSION_DATE+'">'+VERSION_STR+'</span>'
    +'<br/>'
    +'<span id="nngTracked"></span>'
    +'</div></td></tr></table>'
    +'<div id="nngPopup" class="ui-widget-content" style="display:none"/>'
    +'<div id="nngWindows" style="left: 1px; top: 1px;width:1px;height:1px; position:absolute;z-index:20; display:none; font-family: \"Trebuchet MS\", Helvetica\", \"Arial\",  \"Verdana", \"sans-serif\""'
    +'><div id="nngAdmin"  class="ui-widget-content"  style="left: 100px; top: 10px; position: absolute; z-index: 300; width:800px;">'
    +'<div id="nngAdminDiv"><ul id="nngAdminMenu"></ul></div>'
    +'</div></div></div></div><div class="contextMenu" id="cMenu" style="display:none">'
    +'</div>');
    if (site == SITE_BT) scriptJQ('#nngHeaderPic').append(a);
    if (site == SITE_CR) scriptJQ('#nngHeaderPic').append(scriptJQ('#rbinfo'));
    scriptJQ('#nngMantisAction').buttonset();
    scriptJQ('#nngTrackedVersion').button().click(function () {
        showAdminTab(TAB_CHANGELOG);
    });
    scriptJQ('#nngTrackedAdd').buttonset();
    scriptJQ('#nngTrackedAdd10M').button("disable").click(function () {
        addMin(10);
    });
    scriptJQ('#nngTrackedAdd1H').button("disable").click(function () {
        addMin(60);
    });
    scriptJQ('#nngActions').buttonset();
    scriptJQ('#nngWindows').draggable();

    scriptJQ('#nngSetup').button("disable").click(function () {
        readOptions();
        scriptJQ('#nngWindows').show();
    });
    scriptJQ('#nngReport').click(function() {
        floatingMessage('export');
        window.location.href = 'https://app.nng.com/timetracker/Default.aspx';
    });
    scriptJQ('#trackProject').click( function() {
        selectTracked(function (a) {
            setActiveMantis(a);
        }, null, true);
    });

    window.addEventListener('keydown', function(e) {
        if ( e.target instanceof HTMLBodyElement
            && !(e.altKey || e.metaKey || e.ctrlKey)
            && ( (e.keyCode >= 65  && e.keyCode <= 90) // a-z
                || (e.keyCode >= 48 && e.keyCode <= 57) // 0-9
                || e.keyCode == 32) // space
            ) {
            selectTracked(function (a) {
                setActiveMantis(a);
            }, null, true);
        }
    });

    scriptJQ('#trackStop').click( function() {
        setActiveMantis({id:0});
    });
    scriptJQ('#trackMantis').click( function() {
        setActiveMantis(thisMantis);
    });
    scriptJQ('#nngTracked').button().click(function() {
        var active = readActiveMantis();
        if (active.id != 0 && active.id != thisMantisId) {
            window.location.href = '/view.php?id='+active.id;
        }
    });

    var l = 0;
    try {
        for(var k in ttData.activeProjects) {
            l++;
        }
    } catch (e) {
    }
    if (l == 0) {
        scriptJQ('#nngExport span').css('color','red').css('font-weight','bold');
    }
    var first = true;
    var count = 0;
    for(var key in adminTabs) {
        if ('all' == adminTabs[key].show || (isAdmin && 'admin' == adminTabs[key].show)) {
            try {
                adminTabs[key].count = count++;
                scriptJQ('#nngAdminMenu').append('<li><a href="#nngAdminDiv-'+adminTabs[key].key+'"><img height="16" src="'+getPic(adminTabs[key].pic)+'"/> '+adminTabs[key].name+'</li>')
                scriptJQ('#nngAdminDiv').append('<div id="nngAdminDiv-'+adminTabs[key].key+'">Admin menu "'+adminTabs[key].key+'": "'+adminTabs[key].name+'"</div>');
            } catch (c) {
                GM_log('changeHeader error:"'+key+'" :'+c);
            }
        } else {
            delete adminTabs[key].count;
        }
    };

    setTimeout(tabInit,10000)

    scriptJQ('#nngAdminMenu').append('<img id="nngClosePic" src="'+getPic('exit')+'" align="right"/>');
    scriptJQ('#nngSetup').button().click(function () {
        readOptions();
        scriptJQ('#nngWindows').show();
    });
    scriptJQ('#nngClosePic').click(function () {
        scriptJQ('#nngWindows').hide();
    });

}

function tabInit() {
    for(var key in adminTabs) {
        if (adminTabs[key].count >= 0) {
            adminTabs[key].init();
        }
    }
    siteJQ('#nngAdminDiv').tabs({
        select : function(event, ui) {
            if (isChrome) {
                var ind = scriptJQ(ui.panel).attr('id').replace('nngAdminDiv-','');
                for (var key in adminTabs ) {
                    var i = adminTabs[key];

                    if (ind==i.key) {
                        i.refresh();
                    }
                }
            }
        }
    });
    for(var key in adminTabs) {
        if (adminTabs[key].count >= 0) {
            adminTabs[key].refresh(true);
        }
    }
    scriptJQ('#nngSetup').button("enable");
}



function setActiveMantis(t) {
    active = readActiveMantis();
    floatingMessage('<strong>setActiveMantis:'+trackId(active)+'=>'+trackId(t)+'</strong>', true);
    if (active.id != 0) {
        track(active);
    }
    if (t.id) {
        active.id = t.id;
        active.type = t.type;
        active.start = date2myTime(new Date());
        scriptJQ('#activeMantis').hide();
    } else {
        active.id = 0;
    }
    writeActiveMantis(active);
    mantisHeader();
}

function addMin(min) {
    var now = new Date();
    var today = date2myTime(now);
    var active = readActiveMantis();
    var start = myTime(active.start.time);
    if (start.sum >= min) {
        var newStart = myTime(padd(Math.floor((start.sum - min) / 60))
            +':'+padd((start.sum - min) % 60));
        active.start.time = newStart.formatted;
        floatingMessage('New Start:'+newStart.formatted, true, {time:0});
        var day = readDay(today.date);
        var row = day.rows.pop();
        while(row != undefined) {
            var rowStart = myTime(row.start);
            if (rowStart.sum >  newStart.sum) {
                floatingMessage('Drop:'+row.id+' ('+row.start+' - '+row.end+')', true, {time:0});
                row = day.rows.pop();
            } else {
                break;
            }
        }
        if (row != undefined) {
            var rowEnd = myTime(row.end);
            if (rowEnd.sum > newStart.sum) {
                floatingMessage('Reduced:'+row.id+' ('+row.end +'=>'+ newStart.formatted+')', true, {time:0});
                row.end = newStart.formatted;
            }
            day.rows.push(row);
        }
        writeDay(day);
        writeActiveMantis(active);
        mantisHeader();
    }
}

var active;
function mantisHeader() {
    readOptions();
    if (scriptJQ('#nngHeaderPic').size()==0) {
        scriptJQ('body div').each(function(i) {
            if (i==1) {
                changeHeader(this);
            }
        });
    }
    active = readActiveMantis();
    scriptJQ('#nngSummaryTracked').hide();
    scriptJQ('#nngTrackedAdd10M').button("disable");
    scriptJQ('#nngTrackedAdd1H').button("disable");
    if (active.id != 0) {
        var mantis = readMantis(active);
        var now = new Date();
        var today = date2myTime(now);
        if (today.date == active.start.date) {
            var start = myTime(active.start.time);
            if (start.sum >= 60) {
                scriptJQ('#nngTrackedAdd10M').button("enable");
                scriptJQ('#nngTrackedAdd1H').button("enable");
            } else if (start.sum >= 10) {
                scriptJQ('#nngTrackedAdd10M').button("enable");
            }
        }
        var millis = (now).getTime() - (myDate(active.start.date).getTime() + myTime(active.start.time).sum*60000);
        var mins = Math.floor(millis /60000);
        var hours = Math.floor(mins/60);
        mins = mins % 60;
        var time = '<span style="color:red; font-weight:bold" title="Started: '+active.start.date+' '+active.start.time+'">'+hours+":"+mins+' </span> (hh:mm)';
            scriptJQ('#nngSummaryTracked').html(', Tracked: '+time);
        if (sameTrack(thisMantis, active)) {
            scriptJQ('#nngSummaryTracked').show();
            scriptJQ('#nngTracked span').html('Tracked: <span style="color:red; font-weight:bold">This</span>, Time:'+time);
        } else {
            var info = trackInfo(active)
            scriptJQ('#nngTracked').attr('mantis',trackId(thisMantis));
            scriptJQ('#nngTracked span').html('TrackeD '+info.trackedNameFormatted+', Time:'+time);
        }
        scriptJQ('#nngTracked').attr('mantis',trackId(active));

        if (scriptJQ('#nngMantisTrackedImg').attr('state')!='track') {
            scriptJQ('#nngMantisTrackedImg').attr('src',getPic('track'));
            scriptJQ('#nngMantisTrackedImg').attr('state','track');
        }
    } else {
        scriptJQ('#nngTracked span').html('Tracked: none');
        scriptJQ('#nngButtActiveProject').button();
        scriptJQ('#nngButtActiveProject').click(function () {
            writeActiveMantis({id : scriptJQ('#nngSelectActiveProject option:selected').attr('value')*-1, start: date2myTime(new Date())});
            mantisHeader();
        });
        if (scriptJQ('#nngMantisTrackedImg').attr('state')!='clock') {
            scriptJQ('#nngMantisTrackedImg').attr('src',getPic('clock'));
            scriptJQ('#nngMantisTrackedImg').attr('state','clock');
        }
    }
    var state = (thisMantis.id>0 && sameTrack(thisMantis, active)) ? 'track' : 'clock';

    if (scriptJQ('#nngMantisSummaryImg').attr('state')!=state) {
        scriptJQ('#nngMantisSummaryImg').attr('src',getPic(state));
        scriptJQ('#nngMantisSummaryImg').attr('state',state);
    }

    scriptJQ('#trackStop').button(active.id == 0 ? 'disable' : 'enable');
    scriptJQ('#trackMantis').button(thisMantis.id>0 && !sameTrack(thisMantis, active) ? 'enable' : 'disable');
    scriptJQ('#trackStopThis').button(active.id == 0 ? 'disable' : 'enable');
    scriptJQ('#trackMantisThis').button(thisMantis.id>0 && !sameTrack(thisMantis, active) ? 'enable' : 'disable');
    scriptJQ('#nngMantisAction').buttonset();
    scriptJQ('#nngThisMantisAction').buttonset();
}

var isAdmin = false;

function limit( selectedDate ) {
    if (selectedDate == undefined || !/\d{4}-\d{2}-\d{2}/.test(selectedDate)) {
        selectedDate = scriptJQ(this).attr('value');
        GM_log('limit 1.5:'+scriptJQ(this).attr('value')+':'+scriptJQ(this).attr('id'));
    }
    try {
        var option = this.id == "nngExportStartDay" ? "minDate" : "maxDate";
        var instance = siteJQ( this ).data( "datepicker" );
        var date = scriptJQ.datepicker.parseDate(   instance.settings.dateFormat, selectedDate, instance.settings );
        exportDates.not( this ).datepicker( "option", option, date );
    } catch(e) {
        GM_log('limit e:'+scriptJQ(this).attr('id')+":"+e);
    }
}

function exportDays(replace) {
    var startDate = siteJQ( "#nngExportStartDay" ).datepicker( "getDate" );
    var endDate =  siteJQ( "#nngExportEndDay" ).datepicker( "getDate" );
    var day = new Date();
    day.setTime(startDate.getTime());
    GM_log(startDate +'|||'+day+'|||'+endDate);
    var txt = '';
    while (day.getTime()<=endDate.getTime()) {
        var d = refreshDay(date2myTime(day).date);
        for(var k in d.rows) {
            if (d.rows[k].length >= 3) {
                var m = readMantis(d.rows[k]);
                var pid = m.project;
                var tid = m.task;
                if (tid>0) {
                    var t = ttData.tasks['t'+tid];
                    var p = ttData.projects['p'+t.project];
                    GM_log('exportDays:'+tid+t+t.project+p);
                    txt += "\n"+pid+'/'+tid+': ' + p.name + '/' + t.name + "\t" + d.day +"\t" + d.rows[k].start + "\t" + d.rows[k].end + "\t"
                    + (m.fake? '---' : m.name);
                } else {
                    var p = ttData.projects['p'+pid];
                    if (p) {
                        txt += "\n"+pid+': ' + p.name + "\t" + d.day +"\t" + d.rows[k].start + "\t" + d.rows[k].end + "\t"
                            + (m.fake? '---' : m.name);
                    } else {
                        txt += "\n"+pid+': Unknown Project\t' + d.day +"\t" + d.rows[k].start + "\t" + d.rows[k].end + "\t"
                            + (m.fake? '---' : m.name);
                    }
                }
            }
        }
        day.setTime(day.getTime()+DAY);
    }
    GM_log('exportDays:'+txt);
    if (replace) {
       scriptJQ('fieldset.left_column textarea').text(txt.substr(1));
    } else {
       scriptJQ('fieldset.left_column textarea').append(txt);
    }
}

var SITE_TT = 'timeTracker';
function initTimetracker(parts) {
    site = SITE_TT;
    if (parts[4].indexOf('Import.aspx')==0) {
        var html = '<div class="ui-widget-header ui-corner-all" style="padding: 10px 4px;">'
            + '<img id="nngMantisTrackedImg" state="track" src="'+getPic('clock')+'" style="float:left"/>'
            + '<span id="nngExportIntervall" style="padding-left:5px">'
            + '<input checked="checked" type="radio" name="nngExportIntervall" class="nngExportIntervall" value="today" id="nngExportToday"><label for="nngExportToday">Today</label></td>'
            + '<input type="radio" name="nngExportIntervall" class="nngExportIntervall" value="yesterday" id="nngExportYesterday"><label for="nngExportYesterday">Yesterday</label></td>'
            + '<input type="radio" name="nngExportIntervall" class="nngExportIntervall" value="thisweek" id="nngExportThisWeek"><label for="nngExportThisWeek">This week</label></td>'
            + '<input type="radio" name="nngExportIntervall" class="nngExportIntervall" value="prevweek" id="nngExportPrevWeek"><label for="nngExportPrevWeek">Prev. week</label></td>'
            + '</span>';
        html += '<table><tr><td><input id="nngExportStartDay" type="text" size="10"/></td>'
            + '<td>-</td><td><input id="nngExportEndDay" type="text" size="10"/></td>'
            + '<td><div id="nngButtonReplace">Replace</div></td>'
            + '<td><div id="nngButtonInsert">Insert</div></td>'
            + '</tr></table></div>';
        scriptJQ('fieldset.left_column').prepend(html);
        scriptJQ('#nngButtonReplace').button().click( function () {
            exportDays(true);
        });
        scriptJQ('#nngButtonInsert').button().click( function () {
            exportDays(false);
        });
        var today = new Date();
        exportDates = siteJQ( "#nngExportStartDay, #nngExportEndDay" ).datepicker({
            dateFormat:'yy-mm-dd',
            onSelect: limit,
            firstDay: 1
        });
        siteJQ( "#nngExportStartDay, #nngExportEndDay" ).datepicker("setDate", today);
        siteJQ( "#nngExportStartDay" ).datepicker("option", "maxDate" , today );
        siteJQ( "#nngExportEndDay").datepicker("option", "minDate" , today );
        scriptJQ('#nngExportIntervall').buttonset();
        scriptJQ('input.nngExportIntervall').change(function () {
            var value = scriptJQ(this).attr('value');
            if (scriptJQ(this).attr('checked')) {
                if ("today" == value ) {
                    siteJQ( "#nngExportStartDay" ).datepicker("option", "maxDate" , today );
                    siteJQ( "#nngExportEndDay").datepicker("option", "minDate" , today );
                    siteJQ( "#nngExportStartDay" ).datepicker( "setDate" , today );
                    siteJQ( "#nngExportEndDay").datepicker("setDate" , today );
                } else if ("yesterday" == value ) {
                    var yesterday = new Date();
                    yesterday.setTime(today.getTime()-DAY);
                    siteJQ( "#nngExportStartDay" ).datepicker("option", "maxDate" , yesterday );
                    siteJQ( "#nngExportEndDay").datepicker("option", "minDate" , yesterday );
                    siteJQ( "#nngExportStartDay" ).datepicker( "setDate" , yesterday );
                    siteJQ( "#nngExportEndDay").datepicker("setDate" , yesterday );
                } else if ("thisweek" == value ) {
                    var startDate = new Date();
                    var day = today.getDay();
                    day += day == 0 ? 6 : -1;
                    startDate.setTime(today.getTime()-day*DAY);
                    var endDate = new Date();
                    endDate.setTime(startDate.getTime()+6*DAY);
                    siteJQ( "#nngExportStartDay" ).datepicker("option", "maxDate" , endDate );
                    siteJQ( "#nngExportEndDay").datepicker("option", "minDate" , startDate );
                    siteJQ( "#nngExportStartDay" ).datepicker( "setDate" , startDate );
                    siteJQ( "#nngExportEndDay").datepicker("setDate" , endDate );
                } else if ("prevweek" == value ) {
                    var startDate = new Date();
                    var day = today.getDay();
                    day += day == 0 ? 13 : 6;
                    startDate.setTime(today.getTime()-day*DAY);
                    var endDate = new Date();
                    endDate.setTime(startDate.getTime()+6*DAY);
                    siteJQ( "#nngExportStartDay" ).datepicker("option", "maxDate" , endDate );
                    siteJQ( "#nngExportEndDay").datepicker("option", "minDate" , startDate );
                    siteJQ( "#nngExportStartDay" ).datepicker( "setDate" , startDate );
                    siteJQ( "#nngExportEndDay" ).datepicker( "setDate" , endDate );
                }
            }
        });
    }
}

var SITE_CR = 'codeReview';
function initCodeReview(parts) {
    site = SITE_CR;
    var isCRPage = parts[3]=='r' && (parts[4]*1 > 0);

    if (isCRPage) {
        siteJQ('#comment_issue').attr('checked', false);
        thisMantis = {id:parts[4]*1, type:TYPE_CODEREVIEW};
        var mantis = readMantis(thisMantis);
        var writeIt = false;
        if (mantis.fake) {
            mantis.id = thisMantis.id;
            mantis.type = TYPE_CODEREVIEW;
            mantis.name = scriptJQ('#summary_wrapper h1').text();
            mantis.project = 0;
            writeIt = true;
        }
        var parts = scriptJQ('#description').text().split("\n");
        var t = '';
        for(var k in parts) {
            var line = scriptJQ.trim(parts[k]);
            if (line != '') {
                t = line;
            }
        }
        if (''==t) t = 'Select Project!!!';
        var m = /\s*(\d+)\/(\d+)\s*:(.*\w)\s*/.exec(t);
        if (m) {
            if (mantis.project == 0 || m[1]*1>0) {
                mantis.project = m[1]*1;
                mantis.task = m[2]*1;
                writeIt = true;
            }
        } else {
            m = /\s*(\d+)\s*:(.*\w)\s*/.exec(t);
            if (m) {
                if (mantis.project == 0 || m[1]*1>0) {
                    mantis.project = m[1]*1;
                    mantis.task = 0;
                    writeIt = true;
                }
            } else {
                t = '<span style="color:red; font-weight:bold">!!! </span>' + t;
            }
        }
        scriptJQ('#description-value-cell').append('<img src="'+getPic('clock')+'" style="float:left"/><span class="project" id="nngTimeTrackerProject" mantis="'+trackId(thisMantis)+'">'+t+'</span>');
        scriptJQ('#nngTimeTrackerProject').button().click(selectProject);
        if (writeIt) {
            writeMantis(mantis);
        }
    }
    refreshTimer = setInterval(mantisHeader, 20000);
    mantisHeader();
}

var SITE_BT = 'bugTracker';
var thisMantisId = 0;
function initBugtracker(parts) {
    site = SITE_BT;
    var usr = scriptJQ('td.login-info-left span.italic').text();
    isAdmin = parts[3].indexOf('plugins_page.php')==0;
    var isMantisPage = parts[3].indexOf('view.php?')==0
      || parts[3].indexOf('bug_view_advanced_page.php?')==0
      || parts[3].indexOf('bug_view_page.php?')==0;

    if (isMantisPage) {

        var args = parts[3].substr(8);
        var thisMantisId = /id=(\d+)/.exec(args)[1];
        if (thisMantisId>0) {
            thisMantis = {id:thisMantisId, type:TYPE_MANTIS};

            var mantis = readMantis(thisMantis);
            var writeIt = false;
            if (mantis.fake) {
                mantis.id = thisMantisId;
                mantis.type = TYPE_MANTIS;
                mantis.name = document.title.replace(/ - iGO My way Bugtracker/,'');
                mantis.project = 0;
                writeIt = true;
            }


            scriptJQ('td.category').each(function (i) {
                if(/Time Tracker Project/.test(scriptJQ(this).text())) {
                    var td = scriptJQ(this).parent().find('td:eq(1)');
                    var t = td.text().trim();
                    if (''==t) t = 'Select Project!!!';
                    var m = /\s*(\d+)\/(\d+)\s*:(.*\w)\s*/.exec(t);
                    if (m) {
                        if (mantis.project == 0 || m[1]*1>0) {
                            mantis.project = m[1]*1;
                            mantis.task = m[2]*1;
                            writeIt = true;
                        }
                    } else {
                        m = /\s*(\d+)\s*:(.*\w)\s*/.exec(t);
                        if (m) {
                            if (mantis.project == 0 || m[1]*1>0) {
                                mantis.project = m[1]*1;
                                mantis.task = 0;
                                writeIt = true;
                            }
                        } else {
                            t = '<span style="color:red; font-weight:bold">!!! </span>' + t;
                        }
                    }
                    floatingMessage(scriptJQ.toJSON(mantis),true);
                    td.html('<img src="'+getPic('clock')+'" style="float:left"/><span class="project" id="nngTimeTrackerProject" mantis="'+trackId(thisMantis)+'">'+t+'</span>');
                    scriptJQ('#nngTimeTrackerProject').button().click(selectProject);
                } else if(/Summary/.test(scriptJQ(this).text())) {
                    var td = scriptJQ(this).parent().find('td:eq(1)');
                    var t = td.text().trim();
                    td.append('<img id="nngMantisSummaryImg" src="'+getPic('clock')+'" style="float:left; padding-right:10px;"/>'
                        +' <span id="nngSummaryTracked" style="display:none;"></span>'
                        +'<span id="nngThisMantisAction">'
                        +'  <input type="radio" id="trackStopThis" name="track"/><label for="trackStopThis">Stop</label>'
                        +'  <input type="radio" id="trackMantisThis" name="track"/><label for="trackMantisThis">Track</label>'
                        +'</span>'
                    );
                    scriptJQ('#nngMantisSummary').button().click(function() {
                        setActiveMantis(thisMantisId);
                    });
                    scriptJQ('#nngThisMantisAction').buttonset();
                    scriptJQ('#trackStopThis').click( function() {
                        setActiveMantis(0);
                    });
                    scriptJQ('#trackMantisThis').click( function() {
                        setActiveMantis(thisMantis);
                    });
                }
            });
            if (writeIt) {
                writeMantis(mantis);
            }
        }
    } else if (parts[3].indexOf('bug_report_page.php')==0) {
        scriptJQ('td.category').each(function (i) {
            GM_log('bug'+scriptJQ(this).text());
            if(/Time Tracker Project/.test(scriptJQ(this).text())) {
                var td = scriptJQ(this).parent().find('td:eq(1)');
                td.append('<img src="'+getPic('clock')+'" style="float:left"/><span class="project" id="nngTimeTrackerProject" mantis="'+trackId(thisMantis)+'">Select Project</span>');
                scriptJQ('#nngTimeTrackerProject').button().click(function () {
                    selectTracked(function (tracked, name) {
                        var info = trackInfo(tracked);
                        var project = {id: tracked.id, task:0, name:info.trackedName};
                        if (tracked.type == TYPE_TASK) {
                            project.id = ttData.tasks['t'+tracked.id].project;
                            project.task = tracked.id;
                        }
                        scriptJQ(td).find('input').attr('value',project.name);
                        scriptJQ('#nngTimeTrackerProject span').text(project.name);
                    }, null, false);
                });
            };
        });
    }

    refreshTimer = setInterval(mantisHeader, 20000);
    mantisHeader();
}
